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

大数阶乘

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

分析:

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

c++版:

 #include <iostream>
using namespace std; int main()
{
int a[]={,};
int m,i,j,len=,tem,jin;
cin>>m;
for(i=;i<=m;i++)
{
jin=;
for(j=;j<=len;j++)
{
tem=a[j]*i+jin;
a[j]=tem%;
jin=tem/;
if(j==len&&jin!=)
len++;
}
}
for(i=len;i>=;i--)
cout<<a[i];
cout<<endl;
return ;
}

c语言版:

 #include <stdio.h>
int a[];
int main()
{
int carry,n,j;
int digit;
int temp,i;
while(scanf("%d",&n)!=EOF){
a[]=;digit=;
for(i=; i<=n; i++)
{
for(carry=,j=; j<=digit; ++j)
{
temp=a[j-]*i+carry;
a[j-]=temp%;
carry=temp/;
}
while(carry)
{a[++digit-]=carry%;
carry/=;
}
}
for(int k=digit; k>=; --k)
printf("%d",a[k-]);
printf("\n");
printf("length=%d\n",digit);
}
return ;
}
 

最新文章

  1. 跳转时候提示Attempt to present on while a presentation is in progress
  2. ListMultimap 容器
  3. UIButton 一个控件 实现 左图标右文本的效果
  4. Java的外部类和内部类+静态变量和非静态变量的组合关系
  5. Java与WCF交互(一):Java客户端调用WCF服务
  6. Linux中的模式转换
  7. Immutable Object模式
  8. 功率W与dBm的对照表及关系(转)
  9. HTC开放Vive Tracker代码啦!
  10. 第三章 jQuery中的事件与动画
  11. 关于.net 保存 decimal类型数据到SQLServer2012数据库时自动取整的问题
  12. 对配置文件 xml 进行操作
  13. jumpservice一步一步安装
  14. windows下z3安装
  15. day6常用模块,数据库操作
  16. quartz详解2:quartz由浅入深
  17. caffe slover文件详解
  18. Flutter踩坑日记:Tab导航栏保持子页面状态
  19. android 从零单排 第一期 按键显示helloworld
  20. [转]一步一步部署SSIS包图解教程

热门文章

  1. FTS抓包看蓝牙的SDP整个过程
  2. Redis学习笔记(8)-发布/订阅
  3. QT中的SOCKET编程(QT-2.3.2)
  4. Qt工具知多少(一目了然)
  5. EF6 CodeFirst 启用Migration,常用命令
  6. 获取设备唯一标识 uuid(采用第三方库SSKeychain)
  7. 针对应用程序池“xxxxxx”的模板永久性缓存初始化失败,解决方法
  8. 学习WEb前端开发的需要哪些条件
  9. 为什么一个object_id在dba_objects中为什么查不到记录?
  10. 利用utl_file来读取文件.