斐波那契数列(兔子问题)的变形
2012-06-16 20:04
288 查看
描述
斐波那契研究的兔子是每隔两个月开始成熟,现在我们要求的是每隔m个月的情况。
输入
程序从标准输入读入数据,每行数据由两个整数 m (1=<m<=10)和d(1=<d<=100) 组成,其中m是每隔m个月开始成熟,d是d个月后围栏中的兔子对数。m和d之间有一个空格。当m和d均为 0 时程序结束。注意本题我们假设从一对大兔开始。
输出
针对每一行输入,输出一个结果,每个结果占一行。
样例输入
样例输出
这道题写出递推式比较简单
F(n)=F(n-1)+F(n-m)
但是要想一步算出结果还需要细致看题
这道题我犯了一个惯性思维,已原来的基本的兔子问题来解决,即开始为一对小兔子
但是这道题强调了 为一对大兔子,那么这就让我吃了一个大亏,看来以后需要细致看题了
斐波那契研究的兔子是每隔两个月开始成熟,现在我们要求的是每隔m个月的情况。
输入
程序从标准输入读入数据,每行数据由两个整数 m (1=<m<=10)和d(1=<d<=100) 组成,其中m是每隔m个月开始成熟,d是d个月后围栏中的兔子对数。m和d之间有一个空格。当m和d均为 0 时程序结束。注意本题我们假设从一对大兔开始。
输出
针对每一行输入,输出一个结果,每个结果占一行。
样例输入
2 3 3 5 0 0
样例输出
5 9
这道题写出递推式比较简单
F(n)=F(n-1)+F(n-m)
但是要想一步算出结果还需要细致看题
这道题我犯了一个惯性思维,已原来的基本的兔子问题来解决,即开始为一对小兔子
但是这道题强调了 为一对大兔子,那么这就让我吃了一个大亏,看来以后需要细致看题了
#include "stdio.h" #define MAX 10000 int main() { int F[MAX]; int i=0; int m=0; int d=0; do{ scanf("%d %d",&m,&d); if(m==0&&d==0) { break; } for(i=0;i<m;i++) { F[i]=i+1; } for(i=m;i<=d;i++) { F[i]=F[i-1]+F[i-m]; } printf("%d\n",F[d]); }while(m!=0&&d!=0); return 0; }这道题递推关系不是重点,重点是起始兔子数目的确定。
相关文章推荐
- Java算法--递推算法 求解兔子产子问题或斐波那契数列问题
- MOOC清华《程序设计基础》第6章:三种递推方法求兔子数列问题(斐波那契数列)
- 【斐波那契数列】兔子繁殖问题
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- java编程经典案例之基于斐波那契数列解决兔子问题实例
- 每日一题 No.15 兔子繁殖问题(斐波那契数列)
- 斐波那契数列_兔子问题
- java兔子问题(斐波那契数列)
- 【Java算法学习】斐波那契数列问题-兔子产子经典问题
- Java 兔子问题(斐波那契数列)扩展篇
- [JAVA]兔子繁殖问题(斐波那契数列的推算)
- 递归求斐波那契数列的兔子问题
- 斐波那契数列:兔子问题
- 兔子问题--斐波那契数列
- 斐波那契数列变形之跳台阶问题
- 从兔子产仔来看斐波那契数列问题
- 递归解决-兔子问题-斐波那契数列
- 生兔子的问题(斐波那契数列)
- 斐波那契数列--生兔子问题
- 斐波那契数列问题-兔子繁衍问题-c语言-c++-经典问题-编程