当n=130 这组数据过不了,不知道为什么。找了好久没找着。
以下是代码
java
import java.util.*;
public class Main{
static int len = 1;
public static void main(String[] args ){
Scanner in = new Scanner(System.in);
int n = in.nextInt() ;
int ans[] = new int[100000];
ans[1] = 1;
for(int i = 1; i <= n ; i++) {
mul(ans, i);
}
for(int i = len ; i >= 1 ; i--) {
System.out.print(ans[i]);
}
System.out.println();
}
// 低位进位 jinwei
public static void up(int[] a , int i) {
if(a[i] > 10 ) {
a[i+1] += a[i]/ 10;
a[i] %= 10;
}
}
// 乘
public static void mul(int a[], int k) {
for(int i = 1; i <= len ;i++) {
a[i] *= k;
}
for(int i = 1; i<= len-1 ;i++) {
up(a, i);
}
while(a[len]>=10) {
a[len+1] += a[len]/ 10;
a[len++] %= 10;
}
}
}