nyoj28_大数阶乘

来源:互联网 发布:angular.js介绍 编辑:程序博客网 时间:2024/05/20 01:37

原题链接》》》


模拟手算乘法的过程:      abc*de:      c*de+l对10求余=》c      进位l=c*de+l/10;      ...      最后一步的进位l可能是多位数,所以分为个位数循环往数组后面存。。。
#include<stdio.h>int a[16350];int main(){    int i,j,l;    int len=1;    a[0]=1;    int n;    scanf("%d",&n);    for(i=2;i<=n;i++){        l=0;        for(j=0;j<len;j++){            int n=a[j]*i+l;            a[j]=n%10;            l=n/10;        }        while(l){            a[len++]=l%10;            l/=10;        }    }    for(i=len-1;i>=0;i--)    printf("%d",a[i]);    printf("\n");    return 0;}
0 0
原创粉丝点击