1.使用递归方式求出斐波那契数:1,1,2,3,5,8,13......请输入一个数n。求出它的数:
import java.util.Scanner;
public class Recursion {
public static void main(String[] args) {
T t1 = new T();
System.out.println("请输入n的值:");
Scanner myScanner = new Scanner(System.in);
int n =myScanner.nextInt();
int res = t1.fabonacci(n);
if(res != -1){
System.out.println("当n="+n+"时,斐波那契数="+res);
}
}
}
class T{
public int fabonacci(int n){
if(n>=1){
if(n==1 || n==2){
return 1;
}
else{
return fabonacci(n-1) + fabonacci(n-2);
}
}
else{
System.out.println("输入错误,请输入n>=1的数");
return -1;
}
}
}
2.猴子吃桃问题:有一堆桃子,猴子第一天吃了其中一半,并且在多吃了一个,以后每天都吃其中一半多一个。到第十天时,桃子就剩1个了.问:一共多少桃子?
public class Recursion02 {
public static void main(String[] args) {
AA a = new AA();
int days = 9;
int peachSum = a.peach(days);
if(days != -1){
System.out.println("第"+days+"天有"+peachSum+"个桃子");
}
}
}
class AA{
public int peach(int days){
if(days == 10){
return 1;
}
else if(days>=1 && days<=9){
return (peach(days+1)+1) * 2;
}
else{
System.out.println("请输入真确的days");
return -1;
}
}
}