提交时间:2024-08-20 18:20:53
运行 ID: 169857
#include<iostream> using namespace std; int main(void) { int n,m, j, temp; //j表示有多少位数字,temp用来算本位数字大小 int mod = 0; //余数(进位) cin >> n; m=n; cout<<m<<"!="; int* arr = new int[10000]{ 1,1 }; //至少需要10000位数字 for (int i = 1; i <= n; i++) { for (j = 1; j < 10000; j++) { temp = arr[j] * i + mod; //算出本位大小 mod = temp / 10; //算出进位大小 arr[j] = temp % 10; //算出本位上实际数字 } } for (j = 9999; j > 0; j--) //把数组中多余的0去掉 { if (arr[j] != 0) { break; } } while (j) //倒着输出,直到最后一项 { cout <<arr[j]; j--; } return 0; }