Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
169857 C班陈彦宏 高精度阶乘 C++ 解答错误 70 255 MS 288 KB 797 2024-08-20 18:20:53

Tests(7/10):


#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; }


测评信息: