zoukankan      html  css  js  c++  java
  • nyist28大数阶乘

    http://acm.nyist.net/JudgeOnline/problem.php?pid=28

    大数阶乘

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
     
    输入
    输入一个整数m(0<m<=5000)
    输出
    输出m的阶乘,并在输出结束之后输入一个换行符
    样例输入
    50
    样例输出
    30414093201713378043612608166064768844377641568960512000000000000

    分析:

    说白了就是利用数组存储数字的每一位

     

    c++版:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int a[17500]={0,1};
     7     int m,i,j,len=1,tem,jin;
     8     cin>>m;
     9     for(i=2;i<=m;i++)
    10     {
    11         jin=0;
    12         for(j=1;j<=len;j++)
    13         {
    14             tem=a[j]*i+jin;
    15             a[j]=tem%10;
    16             jin=tem/10;
    17             if(j==len&&jin!=0)
    18                 len++;
    19         }
    20     }
    21     for(i=len;i>=1;i--)
    22         cout<<a[i];
    23     cout<<endl;
    24     return 0;
    25 }
    View Code

     c语言版:

     
     1 #include <stdio.h> 
     2 int a[40001];
     3 int main()
     4 {
     5     int carry,n,j;
     6     int digit;
     7     int temp,i;   
     8     while(scanf("%d",&n)!=EOF){
     9     a[0]=1;digit=1;
    10     for(i=2; i<=n; i++)
    11     {
    12         for(carry=0,j=1; j<=digit; ++j)
    13         {
    14             temp=a[j-1]*i+carry;
    15             a[j-1]=temp%10;
    16             carry=temp/10;
    17         }
    18         while(carry)
    19         {a[++digit-1]=carry%10;
    20             carry/=10;
    21         }
    22     }
    23     for(int k=digit; k>=1; --k)
    24         printf("%d",a[k-1]);
    25     printf("
    ");
    26  printf("length=%d
    ",digit);
    27  }
    28     return 0;
    29 }
    View Code
     
    悠游天地间 all rights reserved. © 2013 -- 1 << 64
  • 相关阅读:
    HDOJ1004
    HDOJ1001
    HDOJ1000
    HDOJ1003
    HDOJ1005
    新手如何正确使用CLion之输出hello world
    hihoCoder#1032 : 最长回文子串
    P3805 【模版】manacher算法(manacher)
    P1198 [JSOI2008]最大数(单调栈)
    P1351 联合权值
  • 原文地址:https://www.cnblogs.com/jeff-wgc/p/3248898.html
Copyright © 2011-2022 走看看