兔子算法问题
2014-05-15 17:57
363 查看
有一对兔子,从出生后的第三个月起开始生出一个小兔子,小兔子长到三个月大也开始生出小兔子,假如兔子不会死,问20个月后兔子总数 ?
这两个题其实是一个题目。
这个问题有两种解决思路:for循环和递归算法
程序分析:
第一个月-----------------1
第二个月-----------------1
第三个月-----------------2
第四个月-----------------3
第五个月-----------------5
第六个月-----------------8
第七个月-----------------13
for循环:
#include <stdio.h>
int main()
{
int m[23];
int i;
m[0]=m[1]=1;
for (i=0; i<24; i++) {
if (i==0 || i==1) {
printf("第%d个月月兔子数量为:1对\n",i+1);
}
else {
m[i]=m[i-1]+m[i-2];
printf("第%d个月月兔子数量为:%d对\n",i+1,m[i]);
}
}
return 0;
}
递归:
package exam;
import java.util.Scanner;
public class diGui {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scaner = new Scanner(System.in);
int n = scaner.nextInt();
int value = new diGui().getValue(n);
System.out.println("第"+n+"位="+value);
}
public int getValue(int n) {
if (n<=0) {
return 0;
}else if(n>=0&&n<=2 ){
return 1;
}else {
return getValue(n-1)+getValue(n-2);
}
}
}
1,1,2,3,5,8,13,21....第30个是什么...?
这两个题其实是一个题目。这个问题有两种解决思路:for循环和递归算法
程序分析:
第一个月-----------------1
第二个月-----------------1
第三个月-----------------2
第四个月-----------------3
第五个月-----------------5
第六个月-----------------8
第七个月-----------------13
for循环:
#include <stdio.h>
int main()
{
int m[23];
int i;
m[0]=m[1]=1;
for (i=0; i<24; i++) {
if (i==0 || i==1) {
printf("第%d个月月兔子数量为:1对\n",i+1);
}
else {
m[i]=m[i-1]+m[i-2];
printf("第%d个月月兔子数量为:%d对\n",i+1,m[i]);
}
}
return 0;
}
递归:
package exam;
import java.util.Scanner;
public class diGui {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scaner = new Scanner(System.in);
int n = scaner.nextInt();
int value = new diGui().getValue(n);
System.out.println("第"+n+"位="+value);
}
public int getValue(int n) {
if (n<=0) {
return 0;
}else if(n>=0&&n<=2 ){
return 1;
}else {
return getValue(n-1)+getValue(n-2);
}
}
}
相关文章推荐
- 狐狸吃兔子问题算法
- 趣味算法之兔子产子问题
- 算法:狐狸吃兔子问题(约瑟环)
- 算法习作:兔子生兔子问题 (-_-!)
- java小算法—数兔子问题
- 兔子问题----算法基础
- 算法--兔子生兔子的问题(费氏数列)
- 算法——兔子问题
- 【经典算法】:狐狸抓兔子问题
- java面试常用算法题深入剖析之兔子繁殖问题
- 基础算法题----兔子问题(斐波那契数列)
- 经典的100个C算法__(1)兔子问题
- Fibonacci的【兔子数列】 以及 【狐狸找兔子】的问题 及 算法!
- 【经典算法】:兔子繁殖问题
- 兔子问题,优化算法
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- 算法--兔子生兔子的问题(费氏数列)
- 1.5算法入门之兔子产仔问题
- 经典的100个C算法__(1)兔子问题
- 算法--兔子生兔子的问题(费氏数列)