Java基础逻辑题
1.三月怀胎兔
- 有一对兔子从出生后第三个月起,每个月都生一对兔子,小兔子长到第三个月又生一对兔子,每个月兔子的总数是?
思路:
斐波那契数列 前两项之和等于第三项
//三月怀胎兔
public class rabbit_three {
public static void main (String args[]){
int z=0; //当月兔子数
int x=1; //上月兔子数
int y=1; //上上月兔子数
System.out.println("第1月有1对兔子");
System.out.println("第2月有1对兔子");
int month=7;
for (int i=3;i<=month;i++){
z=x+y;
y=x;
x=z;
System.out.println("第"+i+"月有"+z+"对兔子");
}
}
}
2.贪心猴吃桃
- 猴子第一天摘下若干个桃子,当即吃了一半,然后又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子?
思路:
从最后一天向前推导:1 4 10 22 46......
得出 (x+1)*2
(x+1)*2 == 2*x+2
public class monkey_peach {
public static void main (String args[]){
int x = 1;
System.out.println("第10天有1桃子");
for (int i=9;i>0;i--){
x=(x+1)*2;
System.out.println("第"+i+"天有"+x+"桃子");
}
}
}