参考代码:
#include<iostream> using namespace std; int main() { int n, r = 0, t, a[3000] = { 1 }, len = 1; //初始数组长度为3000,因为1000!也才2568位数,初始长度位1 cin >> n; for (int i = 2;i <= n;i++) //从2乘到n for (int k = 0;k < len;k++) { t = a[k] * i + r; //临时保存,方便计算进位r a[k] = (a[k] * i + r) % 10; r = t / 10; //进位的数 if (k == len - 1 && r) len++; } for (int i = len - 1;i >= 0;i--) cout << a[i]; cout << endl; return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:609 |
不容易系列2 (C语言代码)浏览:597 |
蛇行矩阵 (C语言代码)浏览:753 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:880 |
【绝对值排序】 (C语言代码)浏览:823 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:622 |
Cylinder (C语言描述+详细分析)浏览:3266 |
有关字符,字符串的输入输出函数说明浏览:479 |
printf基础练习2 (C语言代码)浏览:508 |
蚂蚁感冒 (C语言代码)浏览:775 |