参考代码:
#include<iostream> #include<cstring> using namespace std; void add(int[], int[], int[]); void multiply(int, int[], int[]); void print(int[]); void clear(int[]); #define N 1000 int sum[N]; int fn[N]; int t[N]; int main() { int n; cin >> n; fn[0] = 1; for(int i = 1; i <= n; i++) { add(fn, sum, t); multiply(i + 1, fn, t); } print(sum); return 0; } void add(int a[], int b[], int c[]) { clear(c); for(int i = 0; i < N; i++) { c[i] += a[i] + b[i]; if(c[i] >= 10) { c[i + 1] += c[i] / 10; c[i] %= 10; } } memcpy(b, c, sizeof(int) * N); } void multiply(int a, int b[], int c[]) { clear(c); for(int i = 0; i < N; i++) { c[i] += a * b[i]; if(c[i] >= 10) { c[i + 1] += c[i] / 10; c[i] %= 10; } } memcpy(b, c, sizeof(int) * N); } void print(int arr[]) { int i = N - 1; while(i > 0 && arr[i] == 0) i--; for( ; i >= 0; i--) putchar(arr[i] + '0'); putchar('\n'); } void clear(int arr[]) { for(int i = 0; i < N; i++) arr[i] = 0; }
0.0分
5 人评分
【偶数求和】 (C语言代码)浏览:556 |
WU-格式化数据输出 (C语言代码)浏览:1742 |
Wu-求圆的面积 (C++代码)浏览:1883 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:561 |
数对 (C语言代码)浏览:697 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:667 |
陶陶摘苹果2 (C语言代码)浏览:595 |
简单的a+b (C语言代码)浏览:531 |
上车人数 (C语言代码)浏览:710 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:759 |