杭电OJ-1042_N!

来源:互联网 发布:广源良 知乎 编辑:程序博客网 时间:2024/05/22 05:11

求N的阶乘,要算大数,所以要模拟手算

#include<iostream>using namespace std;int a[50000],n;int main(){while (cin >> n){memset(a,0,50000);a[0] = 1;a[1] = 1;for (int i = 2; i <= n; i++){for (int j = 1; j <= a[0]; j++)a[j] *= i;for (int k = 1; k <= a[0]; k++){if (a[k] > 9){if (k == a[0]) a[0]++;a[k + 1] += a[k] / 10;a[k] = a[k] % 10;}}}for (int l = a[0]; l >= 1; l--)cout << a[l];cout << endl;}}


0 0