calcNN(intn)方法,传入整数,返回字符串;
基本思想:就是通过数据保存结果。如a[0]保存结果的个位数、a[1]十位...以此类推。
public class Demo {
public static String calcNN(int n)
{
if( n<0){
return null;
}else{
int[] a=new int[40001];
a[0]=1;
int digit=1,temp=1;
int carry,j;
for(int i=2;i<=n;i++){
for(j=1,carry=0;j<=digit;j++){
temp=a[j-1]*i+carry;
a[j-1]=temp%10;
carry=temp/10;
}
while(carry>0){
digit++;
a[digit-1]=carry%10;
carry/=10;
}
}
StringBuffer bf=new StringBuffer();
for(int i=digit;i>0;i--){
bf.append(a[i-1]);
}
String str=bf.toString();
return str;
}
}
public static void main(String[] args) {
System.out.print(calcNN(1));
}
}