题解 | #阶乘之和#

阶乘之和

https://ac.nowcoder.com/acm/problem/16780

#include<iostream>
using namespace std;

const int N = 1010;
int a[N],res[N];
int n,s;

int main()
{
    cin >> n;
    res[0] = a[0] = 1;
    for(int i = 2;i <= n;i++)
    {
        for(int j = 0;j < N;j++)
        {
            a[j] = s + a[j] * i;
            s = a[j] / 10;
            a[j] %= 10;
        }
        for(int j = 0;j < N-1;j++)
        {
            res[j] += a[j];
            res[j+1] += res[j] / 10;
            res[j] %= 10;
        }
    }
    int len = N;
    while(!res[len-1] && len > 1 ) len--;
    for(int i = len-1;~i;i--) cout <<res[i];
    return 0;
}
全部评论

相关推荐

头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务