Extra Long Factorials

来源:互联网 发布:excel单元格内换行 mac 编辑:程序博客网 时间:2024/06/13 03:01

大数阶乘

思路:利用个大数组保存结果,定义个数保存进位,定义个数保存数位。

从a[0]开始,依次往后乘,低位是相乘后的余数,高位是乘的数加上进位。整个过程就是模拟我们做竖式的乘法

int main(){    int n;    cin >> n;    int res[2000];    res[0]=1;    int digit = 1;    int jinwei = 0;    for(int i = 2;i<=n;i++){        int temp = 0;        for(int j =0;j<digit;j++){            temp = res[j]*i + jinwei;            res[j] = temp%10;            jinwei = temp/10;        }        while(jinwei){            res[digit] = jinwei%10;            jinwei = jinwei/10;            digit++;        }    }    for(int i = digit-1;i>=0;i--)        cout<<res[i];    return 0;}


原创粉丝点击