• 阶乘的精确值


    阶乘的精确值

    输入不超过1000的正整数n,输出n!的精度结果。

    样例输入:30

    样例输出:265252859812191058636308480000000

     

     1 #include<cstdio>
     2 #include<string.h>
     3 
     4 #define maxn 3000
     5 
     6 int f[maxn];
     7 
     8 int main()
     9 {
    10     int i,j,n,c;
    11     int s;
    12     scanf("%d",&n);
    13     memset(f,0,sizeof(f));
    14     f[0]=1;
    15     for(i=2;i<=n;i++)
    16     {
    17         c=0;
    18         for(j=0;j<maxn;j++)  //f[0]是个位,f[1]是十位,f[2]是百位,每一位只保存一个数字
    19         {
    20             s=f[j]*i+c;//每一位都乘以i
    21             f[j]=s%10;//只存一位
    22             c=s/10;//要加到高位的数
    23         }
    24     }
    25     for(j=maxn-1;j>=0;j--)//忽略前导0
    26     {
    27         if(f[j])
    28             break;
    29     }
    30     for(i=j;i>=0;i--)//因为f[0]是个位,所以逆序输出
    31     {
    32         printf("%d",f[i]);
    33     }
    34     printf("
    ");
    35     return 0;
    36 }
  • 相关阅读:
    第一次作业
    java基础随笔09
    java基础随笔08
    java基础随笔07
    java基础随笔06
    java基础随笔05
    java基础随笔04
    java基础随笔03
    java基础随笔02
    java基础随笔01
  • 原文地址:https://www.cnblogs.com/youdiankun/p/3683938.html
Copyright © 2020-2023  润新知