题解 | #N的阶乘#

N的阶乘

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

最最最简单的无脑乘法

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

int n;

vector<int> mul(vector<int> &A, int b)
{
    vector<int> C;
    
    int t = 0;
    for (int i = 0; i < A.size() || t; ++i)
    {
        if (i < A.size())
            t += A[i] * b;
        C.push_back(t % 10);
        t /= 10;
    }
    
    while (C.size() > 1 && C.back() == 0)
        C.pop_back();
    return C;
}

int main()
{
    while (cin >> n)
    {
        vector<int> res;
        res.push_back(1);
        for (int i = 1; i <= n; ++i)
            res = mul(res, i);
        for (int i = res.size() - 1; i >= 0; --i)
            cout << res[i];
        cout << endl;
    }
    return 0;
}
全部评论

相关推荐

06-19 13:40
武汉大学 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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