黑马程序员技术交流社区
标题:
求大侠用循环替代递归运算解决问题
[打印本页]
作者:
魏-玉-彪
时间:
2013-10-27 22:47
标题:
求大侠用循环替代递归运算解决问题
本帖最后由 魏-玉-彪 于 2013-10-29 23:09 编辑
/*题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
*/
public class Tuzi{
public static int tuZhiShu(int a){
if(i==1||i==2){
return 1;}
else return tuZhiShu(a-1)+tuZhiShu(a-2);
public static void main(String[]args){
System.out.print("第个月的免子数是 "+tuZhiShu(a)); }
}
}
复制代码
用递归运算可以解决这个问题,只是算法较难理解,求大侠用更简单的算法解决些问题.
作者:
んоиё$t
时间:
2013-10-28 17:42
/**
* 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
* 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
*/
public class Tuzi {
public static int tuZhiShu(int a) {
int[] temp = new int[2];
if (a == 1 || a == 2) {
return 1;
} else{
for (int i = 2; i < a; i ++)
{
int tp = temp[0] + temp[1];
temp[1] = temp[0];
temp[0] = tp;
}
return temp[0];
}
}
public static void main(String[] args) {
int i = 5;
System.out.print("第个月的免子数是 " + tuZhiShu(i-1));
}
}
复制代码
这个题目其实就是斐波那契数列的非递归用法,我就弄了个数组,比如你输入的是5的时候,刚开始刚开始temp[0]和temp[1]里面都是1,经过循环一次后,temp[0]里面是2(temp[0]+temp[1]),一次类推,至于main函数里面的为i-1则是因为数组从0开始计算,希望可以帮到你
作者:
To
时间:
2013-10-29 21:31
楼主你好,如果问题已解决请将帖子状态修改为提问结束,
如果未解决请继续追问,谢谢合作
修改方法请看解释帖:
http://bbs.itheima.com/thread-89313-1-1.html
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2