YunYan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

高精度阶乘

#include<iostream>
#include<string.h>
using namespace std;

int main(){
    int n,A[100000];
    cin>>n;
    memset(A,0,sizeof(A));
    A[0] = 1;
    int bit = 0;
    for(int i = 1;i <= n;i++){
        int tem = 0;
        for(int j = 0;j <= bit;j++){
           A[j] = A[j] * i + tem;
           if(j==bit){
                 if(A[j] >= 10) 
                   bit++;
           }
           if(A[j] >= 10){
                 tem = A[j] / 10;
                 A[j] = A[j] % 10;
           }
           else
              tem = 0;//易错 
           
        }    
    }
    for(int i = bit;i >= 0;i--){
        cout<<A[i];
    }
    cout<<endl;
    return 0;
}

 

posted on 2020-03-05 20:58  Target--fly  阅读(129)  评论(0编辑  收藏  举报