c_cpp Factorial_of_Large_Number

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp Factorial_of_Large_Number相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>
using namespace std;

// #Math #Strings

string factorial(int n);
string multiply(int a, string b);

int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        cout<<factorial(n)<<endl;
    }
    return 0;
}

string factorial(int n){
    string ans="1"; // factorial(1)=1
    for(int i=2;i<=n;i++){
        ans=multiply(i,ans);
    }
    return ans;
}

string multiply(int a, string b){
    string ans;
    int carry=0;
    int i=b.size()-1;
    while(i>=0){
        int x=(a*(b[i]-'0'))+carry;
        ans.insert(ans.begin()+0,(x%10)+'0'); // adding result at beginning
        carry=x/10; // adding remaining digits to carry
        i--;
    }
    while(carry!=0){    // adding remaining carry at beginning
        ans.insert(ans.begin()+0,(carry%10)+'0');
        carry=carry/10;
    }
    return ans;
}

以上是关于c_cpp Factorial_of_Large_Number的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp -_-公元前

c_cpp uv__next_timeout.c

c_cpp uv__handle_unref.c

c_cpp uv__handle_ref.c

c_cpp uv__handle_stop.c

c_cpp uv__handle_start.c