C++大数阶乘

    xiaoxiao2021-03-25  134

    #include<bits/stdc++.h> using namespace std; long long res[10002]; const long long d=1e+9; int main(){ long long num; long long val,temp1,temp2; while(scanf("%d",&num)!=EOF){ long long c=0; if(num==0||num==1) printf("1\n"); else{ res[0]=1; val=1; for(int i=2;i<=num;i++){ for(int j=0;j<val;j++){ temp1=res[j]*i+c; if(temp1<d){ res[j]=temp1; c=0; } else{ res[j]=temp1%d; c=temp1/d; } } while(c!=0){ res[val++]=c%d; c/=d; } } printf("%d",res[val-1]); for(int i=val-2;i>=0;i--) printf(" lld",res[i]); printf("\n"); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-13511.html

    最新回复(0)