递归算法,用Java的BigDecimal类
package com.todo.first;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Scanner;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2010-9-15
* Time: 15:26:25
* To change this template use File | Settings | File Templates.
*/
public class mainTest {
public static void main(String[] args) {
System.out.println("输入要求阶乘数:");
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());
BigDecimal bigDecimal = new BigDecimal(0);
bigDecimal=bigDecimal.add(jiecheng(n));
System.out.println(bigDecimal.toString());
File file = new File("D://"+n+"!.txt"); //把计算结果保存到D盘文件中
BufferedWriter os = null;
try {
os = new BufferedWriter(new FileWriter(file));
os.write(file.getName()+"/n"+bigDecimal.toString());
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//阶乘递归算法 public static BigDecimal jiecheng(int n) { if (n == 1) { return new BigDecimal(1); } return jiecheng(n - 1).multiply(new BigDecimal(n)); } }