递归用法非常的依赖数学能力与逻辑思维能力。对于数字要有很强的敏感性,找出数字之间的规律。
public class MethodExercise021 {
//编写一个main方法
public static void main(String[] args) {
// Person p = new Person();
// p.name = "xiaofang";
// p.age = 10;
// //创建tools对象
// MyTools tools = new MyTools();
// Person p2 = tools.copyPerson(p);
// //p与p2是Person对象,但是是两个独立的对象,属性相同
// System.out.println("p的属性 age=" + p.age + "名字=" + p.name);
// System.out.println("p2的属性 age=" + p2.age + "名字=" + p2.name);
// System.out.println(p == p2);
T t1 = new T();
int n = 7;
int res = t1.fibonacci(n);
if (res != -1) {
System.out.println("斐波那契函数res=" + res);
}
int day = 8;
int peachSum = t1.MonkeyPeach(day);
if (peachSum != -1) {
System.out.println("第" + day + "天桃子有:" + peachSum);
}
}
}
class Person {
String name;
int age;
}
class MyTools {
public Person copyPerson(Person p) {
Person p2 = new Person();
p2.name = p.name;
p2.age = p.age;
return p2;
}
}
class T {
//斐波那契函数
public int fibonacci(int n) {
if (n >= 1) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
} else {
System.out.println("请输入n>=1的值");
return -1;
}
}
//猴子吃桃,一堆桃子,第一天吃其中一半加1,以后每天都是吃一半加1,
//当到第十天,还没吃就只剩1个桃子。问:有多少桃子?
//前一天桃子=
public int MonkeyPeach(int n) {
if (n == 10) {
return 1;
} else if (n >= 1 && n <= 9) {
return (MonkeyPeach(n + 1) + 1) * 2;
} else {
System.out.println("请输入n在1-10内");
return -1;
}
}
}