看似很简单的一道题 (openjudge 1.4 16题)
来源:互联网 发布:淘宝客服绩效考核工具 编辑:程序博客网 时间:2024/06/10 21:14
描述
求10000以内n的阶乘。
一行,即n!的值。
样例输入:
3
样例输出:
6
先放代码:
#include <cstdio>#include <cstring>using namespace std;int main(){int a[100000],n,w=1,x=0;scanf("%d",&n);a[1]=1;for(int i=1;i<=n;++i){x=0;for(int j=1;j<=w;++j){a[j]=a[j]*i+x;x=a[j]/10;a[j]%=10;}while (x>0) {w++;a[w]=x%10;x/=10;}}for(int i=w;i>=1;--i){printf("%d",a[i]);}}
补充另一种写法,比较好用与方便#include <cstdio>#include <cstring>#define maxn 100000using namespace std;int a[maxn];int main(){int n,x=0,k;scanf("%d",&n);memset(a,0,sizeof(a));a[maxn]=1;for(int i=1;i<=n;++i){x=0;for(int j=maxn;j>=1;--j){k=a[j]*i+x;a[j]=k%10;x=k/10;}}k=1;while (a[k]==0) ++k;for(int i=k;i<=maxn;++i){printf("%d",a[i]);}}
本题考查的是高精度乘法,第一次写,感觉要死了一样,终于理解了,表示开心,不知读者们是否有过这样的想法,高精度的源代码咱都会打,但是一旦牵扯到在题目中用便懵逼了,不知听谁曾经说,只要打包成函数就可以了,其实不然。今天总算知道怎么用,其实就是一个模板,背掉就好了。
大家若有什么好的方法,请向我这个蒟蒻分享分享,感谢大佬
阅读全文
0 0
- 看似很简单的一道题 (openjudge 1.4 16题)
- 一道看似简单的易错数分考研题
- 一道看似简单的ACM题检验你的基本功
- 出一道自己偶然想出来的JAVA题,看似很简单
- 黑马程序员:一道看似简单的题(删除List中的元素)
- 一道看似简单的面试算法题所隐藏的潜在意图
- 一道看似简单的面试题
- 一道看似很简单的题目,竟然让很多人丢了分
- 一道看似很简单的判断A==B问题
- 一道看似简单的sql面试题(count,group by,distinct)
- 一道简单的题
- AOL的面试题,看似很简单
- 看似简单的scanf
- 看似简单的TextView
- 一道关于finally的看似非常简单但很多人都做错的Java面试题
- (C#)一道看似简单却很难答得完全正确的关于多态的问题
- 一道看似简单的sql需求却难倒各路高手 - 你也来挑战下吗
- Problem C: 很简单的一道题
- [Hdu 4280]Island Transport
- github中git push origin master出错:error: failed to push some refs to
- javascript 高级程序设计 笔记 (2)
- 1017. The Best Peak Shape (35)解题报告
- jquery阻止冒泡小例子
- 看似很简单的一道题 (openjudge 1.4 16题)
- KindEditor中上传图片不回显的问题
- 股票大数据分析软件V2.7
- Server Tomcat v7.0 Server at localhost failed to start.解决方案
- think-queue消息队列初体验
- 采用jquery实现简单的计算器
- EasyRMS 部署使用文档
- ionic2生命周期(通俗基础入门弱鸡版)
- TCP/IP、Http、Socket、XMPP-从入门到深入