首页 > 其他 > 详细

大数的阶乘

时间:2019-12-03 16:17:31      阅读:97      评论:0      收藏:0      [点我收藏+]

题目描述

 输入一个正整数N,输出N的阶乘。

输入描述:

正整数N(0<=N<=1000)

输出描述:

 输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
示例1

输入

复制
4
5
15

输出

复制
24
120
1307674368000



代码:

#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
  int a[3000];
  int n;
  while(cin>>n)
  {
    int t=0;
    for(int i=0;i<3000;i++)
      a[i]=0;
    a[0]=1;
    for(int i=1;i<=n;i++)///算n的阶乘
    {
      int k=0;
      for(int j=0;j<=t;j++)
      {
        int r=(a[j]*i+k)/10;
        a[j]=(a[j]*i+k)%10;
        k=r;
      }///这个循环是将之前算的积和下一个数乘起来
      while(k)
      {  
        a[++t]=k%10;
        k=k/10;
      }///算完最后一位的乘法后,位数可能会增加
    }
    for(int i=t;i>=0;i--)
    {
      cout<<a[i];
    }
    cout<<endl;
  }
  return 0;
}

大数的阶乘

原文:https://www.cnblogs.com/zhanghuawei/p/11977340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!