参考代码:
#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++代码)浏览:2005 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1514 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:424 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:543 |
printf基础练习2 (C语言代码)浏览:741 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:879 |
【排队买票】 (C语言代码)浏览:899 |
简单的a+b (C语言代码)浏览:626 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:935 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:672 |