Time Limit: 3 second

Memory Limit: 2 MB

对于阶乘函数,即使自变量较小,其函数值也会相当大。例如: 10!=3628800 25!=15511210043330985984000000 若用integer型数据表示阶乘,最多仅可用7!,用longint类型类型亦只能到12!。设计一个程序,当键入一个正整数n(1<=n<=100)时,输出n!的精确值。

如果N的值不在规定的范围,将输出“error”。

Input

输入文件中只一个数字,表示要计算的n的值(1<=n<=100)。

Output

输出N!的精确值

Sample Input

12

Sample Output

12!=479001600

【题解】

高精度*单精度。乘的时候要记录进位信息。然后处理进位即可。不断更新数字的长度。最后倒叙输出

【代码】

#include <cstdio>
#include <stdlib.h> const int MAXN = 500; int n,a[MAXN],la = 1; void input_data() //输入数据
{
scanf("%d",&n);
if ( n<1 || n>100) //输出错误信息
{
printf("error");
exit(0);
}
for (int i = 2; i <= MAXN;i++)
a[i] = 0;
a[1] = 1; //先置1方便后面乘
} void get_ans()
{
for (int i = 1;i <= n;i++) //从1 一直 乘到n
{
int x = 0;
for (int j = 1;j <= la;j++) //对现在的数字的每一位都乘上i x用来保存进位信息
{
a[j] = a[j] * i + x;
x = a[j] / 10;
a[j] = a[j] % 10;
}
while (x > 0) //如果进位数字>0则 数字的位数可以增加 不断增加即可
{
la++;
a[la] += x;
x = a[la] / 10;
a[la] = a[la] %10;
}
}
} void output_ans()
{
printf("%d!=",n);
for (int i = la;i >= 1;i--)
printf("%d",a[i]); } int main()
{
input_data();
get_ans();
output_ans();
return 0;
}

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(42)-工作流设计-表建立
  2. 扩展Bootstrap Tooltip插件使其可交互
  3. fscanf使用
  4. Bootstrap &lt;基础二十一&gt;徽章(Badges)
  5. Android Service服务
  6. listView divider marginLeft marginRight
  7. HDOJ(HDU) 2097 Sky数(进制)
  8. windows下一个,OracleServiceXXX和Oracle 关系实例
  9. python[error] - mysql_config not found
  10. 2019-oo-第一次总结
  11. ssh登录原理及免密登录配置
  12. 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
  13. Jquery中的 Deferred分析
  14. [hgoi#2019/2/17t1]million
  15. 【iCore1S 双核心板_ARM】例程四:USART通信实验——通过命令控制LED
  16. this.$router
  17. 万物云平台数据转发 c# 控制台程序
  18. PostBuildEvent
  19. ubuntu 安装ftp,配置,和java调用
  20. t分布, 卡方x分布,F分布

热门文章

  1. [Angular &amp; Unit Testing] Automatic change detection
  2. javascript创建对象的方法--构造函数模式
  3. linux设置tab键的宽度为4
  4. PatentTips - Method to manage memory in a platform with virtual machines
  5. 洛谷——P3817 小A的糖果
  6. linux 命令之 apt-get
  7. Linux下改动Oracle数据库字符集命令
  8. bootstrap课程7 jquery中结束之前动画用什么
  9. OpenAL音频播放
  10. Maven学习总结(18)——深入理解Maven仓库