ACM大数阶乘问题
来源:互联网 发布:三星s7检查网络连接 编辑:程序博客网 时间:2024/05/21 12:44
解题思路:
看着题目首先想到用数组来保存数据,肯定不能用任何数据类型来保存。
想到:5!=5*4!=5*4+20*5.。。
大数阶乘
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?
- 输入
- 输入一个整数m(0<m<=5000)
- 输出
- 输出m的阶乘,并在输出结束之后输入一个换行符
- 样例输入
50
- 样例输出
30414093201713378043612608166064768844377641568960512000000000000
代码如下:
#include<stdio.h>#include<string.h>//算法思路,求模和求余,最后看进位//5!=120,在数组中存储为a[3]={0,2,1}int main(){int N=0,k=0,temp=0,i=0,j=0;int buf[40000];//设置一个很大的数保证有足够空间存储buf[0];int jinwei=0;int weishu;memset(buf,0,sizeof(buf));scanf("%d",&N);if(N>=2){buf[0]=1;weishu=1;for(i=2;i<=N;i++)//从第二个数开始{for(j=1,jinwei=0;j<=weishu;j++){ temp=buf[j-1]*i+jinwei; buf[j-1]=temp%10; jinwei=temp/10;}while(jinwei){ buf[++weishu-1]=jinwei%10; jinwei/=10;}}}printf("总共为%d位数,%d!=\n",weishu,N);for(i=weishu;i>=1;i--){printf("%d",buf[i-1]);}return 0;}
0 0
- ACM大数阶乘问题
- ACM 大数 大数阶乘
- ACM内部函数--数学问题--大数阶乘
- acm-大数阶乘
- 大数阶乘-ACM
- ACM-大数阶乘
- 【大数问题】大数阶乘
- 求大数阶乘的位数(ACM Big Number问题)
- ACM(1042) 求大数阶乘
- 小白ACM-大数阶乘
- 大数阶乘问题
- 大数阶乘问题
- 大数阶乘问题研究
- 阶乘,大数问题
- 大数阶乘问题
- 大数阶乘问题
- 大数阶乘问题
- NYOJ 大数阶乘问题
- hihocoder 网易互娱在线笔试第二场 一起消消毒问题的解答
- 数据结构与算法学习04:双向链表
- ORA-12704:字符集不匹配
- retrofit的使用
- 出现java.sql.SQLException: After end of result set的原因
- ACM大数阶乘问题
- The 13th Zhejiang Provincial Collegiate Programming Contest (杂谈)
- JS中六种数据类型(四)——Number
- 蓝桥杯历届试题 错误票据
- IPython和Jupyter Notebook 简介
- web容器中web.xml中Servlet、Filter、context-param、listener的加载顺序
- 透视变换和仿射变换(下)
- RTP类型和时间戳
- 探讨kafka的分区数与多线程消费