分巧克力【来源:CSDN线上编程挑战赛】——递归,费波那奇数列,迭代
2014-01-17 19:37
225 查看
/*====================================================================== 儿童节快到了,班长想要给班上的每个同学给一个巧克力, 巧克力的形状是一个宽为2,长为n的长方形,由于巧克力太贵, 班长就想把这个大块的巧克力分成许多 1*2(宽*长)的小块巧克力, 这样每个人都能得到一份1*2的巧克力,现在给定巧克力的长为 正整数n(1<=n<=91),请你判断对于这 个2*n的巧克力有多少种不同的分法? 分析: 这个其实就是考查费波纳奇数列。 考虑第一块的分法有如下两种选择:(横放或者竖放) 假设用f(n)表示长度为n的时候所有不同分法的数量,则 f(1)=1; f(2)=2; f(n)=f(n-1)+f(n-2)………………n>=3 题目输入n计算并输出f(n),所以可以直接用递归去解。 再看看,这个和费波那奇数列是一个样的,用迭代其实也可解决的。 ========================================================================*/
#include<stdio.h> int main() { int n,i; long n1=1; long n2=2; long c=n1+n2; scanf("%d",&n); if(n==1) printf("%ld\n",n1); else if(n==2) printf("%ld\n",n2); else { for(i=4;i<=n;i++) { n1=n2; n2=c; c=n1+n2; } printf("%ld\n",c); } return 0; }
相关文章推荐
- CSDN线上编程挑战5月份月赛题目:打牌
- PHP有关函数的编程思想(递归与迭代)
- 用python实现csdn第四届在线编程大赛·线上初赛:带通配符的数
- [算法]CSDN编程挑战赛之整数取反
- csdn首页高校编程挑战金色十月线上编程比赛第二题:解密
- [算法]CSDN编程挑战赛之整数取反
- CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
- 2014年CSDN编程挑战赛 - 检查交替字符串
- 今天在CSDN上看到的GOOGLE编程挑战赛练习题
- csdn第四届在线编程大赛·线上初赛:带通配符的数
- 编程中,循环、迭代、遍历和递归之间的区别
- CSDN之金色十月线上编程比赛第一题:小女孩数数
- CSDN之金色十月线上编程比赛第二题:解密
- CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》
- Python学习中递归、迭代、生成器、函数式编程的思考
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分(来源:http://blog.csdn.net/yangjundeng/archive/2005/03/17/321920.aspx)
- CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
- 金色十月线上编程比赛第二题:解密 csdn
- csdn 英雄会第四届在线编程大赛·线上初赛:带通配符的数
- [算法]CSDN编程挑战赛之寻找直方图中面积最大的矩形