N的阶乘 大整数阶乘(c++)

https://www.acwing.com/problem/content/3392/

输入一个正整数 N,输出 N 的阶乘。

输入格式

输入包含多组测试数据。

每组数据占一行,包含一个整数 N。

输出格式

每组数据输出占一行,输出 N 的阶乘。

数据范围

1≤N≤1000,
每个输入最多包含 100组数据

输入样例:

4
5
15

输出样例:

24
120
1307674368000
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
using namespace std; 
int main() {
    int n;while(~scanf("%d",&n)) {
       int s[100000]={0};
        int t = 1, yu = 0;
        s[0]=1;
        for (int i = 2; i <= n; i++) {
            
            for (int j = 0; j < t; j++) {
                
                s[j] = s[j] * i + jinwei;
                jinwei= s[j] / 10;
                s[j] = s[j] % 10;
            }
            while (jinwei) {
                s[t++] = jinwei % 10;
                jinwei /= 10;
            }
        }
        for (int i = t-1; i >= 0; i--) {
            cout << s[i];
        }
        cout<<"\n";
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_52797843/article/details/122419801