1581: 聚宝盆
2016-06-23 19:25
513 查看
1581: 聚宝盆 时间限制: 1 Sec 内存限制: 128 MB 提交: 385 解决: 170 [提交][状态][讨论版] 题目描述 Grace是个善良的同学,他经常帮助同学解决问题。这天,他正在去逸夫楼的路上,发现路边有一个发光的盆子,Grace拿来一看,盆子上面写着“聚宝盆”。Grace把“聚宝盆”拿回去研究了许久,终于发现了“聚宝盆”的神奇面目。 “聚宝盆”的神奇之处在于,你往盆里放1个东西(第一天),从放东西后第3天起每天都会“复制”出1个该东西,被复制出来的东西在随后的第3天(复制当天是第1天)起之后的每天也会开始“复制”东西。 现在,grace往“聚宝盆”里放1块钱,他想知道在第n天的时候,“聚宝盆”里,总共有多少钱,但由于Grace最近忙于其他事情,因此他打算向热爱编程的你求助,求你帮助Grace解决这个问题。 输入 输入数据有多组。 每组占一行,包含一个n,代表第n天(1=<n<=45),当n=0时,结束程序,该行不用处理。 输出 对于每组输入数据,输出一行,表示第n天“聚宝盆”里共有多少钱。 样例输入 1 3 45 0 样例输出 1 2 1134903170 提示 来源 黄俊辉,2013新手选拔赛 来源: http://125.221.232.253/JudgeOnline/problem.php?id=1581 //F =F[n-1]+F[n-2]
#include <cstdio> #include <cstring> long long A[46]={0,1,1,2}; long long Cal(int n) { return A <=0?A =Cal(n-1)+Cal(n-2):A ;//memset -1不一定是值 } int main() { int n; memset(A,-1,sizeof(A[0])); A[1]=1;A[2]=1;A[3]=2; //标准上需要memset后赋值 while(~scanf("%d",&n)&&n) printf("%I64d\n",Cal(n)); return 0; }
相关文章推荐
- 【bzoj3203】【保护出题人】【凸包+三分】
- C语言课程设计 问题 G: 整数连接
- OpenGL深入探索——纹理加载(ImageMagick)与贴图
- 两个有序整型数组的交集
- 理解Windows内置安全主体
- LeetCode第45之 Jump Game II
- arpspoof和driftnet截获图片
- 1644: 魔法师
- SQL的简单查询实例教程
- 思数云云计算
- 第十四周(3)-阅读程序
- 题目(或游戏)流程控制器上传到GitHub
- 思数云云计算
- Android进阶之自定义注解
- 1651: 排列顺序
- 第二次作业150206226
- j2ee项目中jsp第一行报错
- 1638: 遍地桔子
- 穿透事件
- 前端构建工具gulpjs的使用介绍及技巧