兔子

java递归

元气小坏坏 提交于 2019-11-29 05:16:19
递归:方法定义中调用方法本身 如果是方法的嵌套调用 这不是递归 基本思想就是“自己调用自己” 一个使用递归技术的方法将会直接或者间接的调用自己 几个应注意的点:   递归一定要有出口否则就是死递归   递归的次数不能太多 否则就内存溢出   构造方法不能递归使用 例: public class DiGuiDemo { // public DiGuiDemo() { // DiGuiDemo(); // } } 递归求n的阶乘 public class DiGuiDemo { public static void main(String[] args) { int jc = 1; for (int x = 2; x <= 5; x++) { jc *= x; } System.out.println("5的阶乘是:" + jc); System.out.println("5的阶乘是:"+jieCheng(5)); } /* * 做递归要写一个方法: * 返回值类型:int * 参数列表:int n * 出口条件: * if(n == 1) {return 1;} * 规律: * if(n != 1) {return n*方法名(n-1);} */ public static int jieCheng(int n){ if(n==1){ return 1; }else { return

经典递归java编写的算法

旧时模样 提交于 2019-11-28 19:55:52
1.斐波那契数列 生兔子 题目:古典问题:3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大三种,兔子从出生后三个月后每个月就会生出一对兔子, 那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为大兔子,那么第一个月分别有1、0、0,第二个月分别为0、1、0, 第三个月分别为1、0、1,第四个月分别为,1、1、1,第五个月分别为2、1、2,第六个月分别为3、2、3,第七个月分别为5、3、5…… 兔子总数分别为:1、1、2、3、5、8、13…… 于是得出了一个规律,从第三个月起 , 后面的兔子总数都等于前面两个月的兔子总数之和,即为斐波那契数列。 public static void main(String[] args) { for(int i = 1;i<=12;i++){ System.out.println("第"+i+"个月兔子共"+f(i)+"对"); } } //递归方法 public static int f(int x){ if(x<3){ return 1; }else{ return f(x-1)+f(x-2); } } 来源: https://www.cnblogs.com/zxrxzw/p

初识python: 之 兔子生崽(小练习)

南笙酒味 提交于 2019-11-27 08:39:42
题目:有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,每个月的兔子总数为多少?思路分析: 月份 兔子数 规律1 2 2**12 2 2**13 2+2 2**24 2+2 2**25 2+2 2**26 (2+2)*2 2**37 (2+2)*2 2**38 (2+2)*2 2**39 (2+2)*2*2 2**4从规律可以看出,实际兔子数据就是2的(月分数-1)幂次方问题。代码如下: while True: month = int(input('您想预测第几个月的兔子数?(0退出)\n')) if month==0: print('感谢您的使用!') break times = month // 3 tz_num = 2**(times+1) print('第%d月的兔子数是:%d'%(month,tz_num)) 来源: https://www.cnblogs.com/simple-li/p/11355069.html