大数阶乘

N的阶乘

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

大数乘法和大数加法,
按照乘法和加法的运算对字符串进行运算就可以了,可以把代码记下来当成板子用。
这样下次写时候直接用就行了。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
//大数加法
string addString(string a,string b)
{
    int carry=0;
    string res;
    int i=a.size()-1;
    int j=b.size()-1;
    while(i>=0 && j>=0)
    {
        int num=carry+a[i]-'0'+b[j]-'0';
        res+=num%10+'0';
        carry=num/10;
        i--;j--;    
    }
    while(i>=0)
    {
        int num=carry+a[i]-'0';
        res+=num%10+'0';
        carry=num/10;
        i--;
    }
    while(j>=0)
    {
        int num=carry+b[j]-'0';
        res+=num%10+'0';
        carry=num/10;
        j--;
    }    
    if(carry>0)
        res+=to_string(carry);
    reverse(res.begin(),res.end());
    return res;
} 
//大数乘法(x<=10)
string mulString(string a,int x)
{
    int carry=0;
    string res;
    for(int i=a.size()-1;i>=0;i--)
    {
        int num=carry+(a[i]-'0')*x;
        res+=num%10+'0';
        carry=num/10;
    }
    if(carry>0)
        res+=to_string(carry);
    reverse(res.begin(),res.end());
    return res;
} 
//组合大数乘法
string MulString(string a,string b) 
{
    string res;
    for(int i=0;i<b.size();i++)
    {
        int x=b[b.size()-1-i]-'0';
        string num=mulString(a,x);
        for(int j=0;j<i;j++)
            num=mulString(num,10);
        res=addString(res,num);
    }
    return res;
}
int main()
{
    int n;
    while(cin>>n)
    {
        string res="1";
        for(int i=2;i<=n;i++)
        {
            res=MulString(res,to_string(i));
        }
        cout<<res<<endl;
    }
    return 0;
}
全部评论
谢谢大佬,参考了许多
点赞 回复 分享
发布于 2021-02-08 22:40

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
41
4
分享
牛客网
牛客企业服务