Basic training factorial

Factorial process: consider a carry at the end of each multiplication operation or an error occurs

#include<iostream>
#include<string.h>
using namespace std;
int main(){
    int n,j,i;
    int a[100000]={1};
    cin>>n;
    int len=sizeof(a)/sizeof(a[0]);
    for(i=0;i<n;i++){
        for(j=0;j<len;j++){
            a[j]=a[j]*(i+1); 
        }
        for(j=0;j<len;j++){
            int temp=0;    
            if(a[j]>=10){
                temp=a[j];
                a[j]=a[j]%10;
                a[j+1]=temp/10+a[j+1];
            }    
        }
    }
    int flag=0;
    for(i=len-1;i>=0;i--){
        if(a[i]) flag=1;
        if(flag) cout<<a[i];
    }
    cout<<endl;
} 

Guess you like

Origin www.cnblogs.com/joker99/p/12227213.html