题解 | #N的阶乘#

N的阶乘

https://www.nowcoder.com/practice/f54d8e6de61e4efb8cce3eebfd0e0daa

#include <iostream>
#include <vector>
using namespace std;

const int N = 1010;
vector<int> f[N];//存储每个数的阶乘

vector<int> mul(vector<int>& A, int b) {
    int t = 0;
    vector<int> C;
    for (int i = 0; i < A.size(); i++) {
        t += A[i] * b;
        C.push_back(t % 10);
        t /= 10; //向高位进位
    }
    while (t) {
        C.push_back(t % 10);
        t /= 10;
    }
    return C;
}
int main() {
    //预处理
    f[0] = {1}; //0!=1
    for (int i = 1; i <= 1000; i++) {
        f[i] = mul(f[i - 1], i);
    }
  //打表
    int n;
    while (cin >> n) {
        for (int i = f[n].size() - 1; i >= 0; i--)
            cout << f[n][i];
        cout << endl;
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
CARLJOSEPH...:宝宝你戾气太大了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务