递推思想适合于有着明显递推公式的场合。
例如:不死神兔:一对2个月大的兔子以后每个月都可以生一对小兔子,新生的兔子出生2个月后可以生小兔子。问1年后共有多少对兔子?
分析:
第1个月:1对兔子。
第2个月:1对兔子。
第3个月:2对兔子。
第4个月:3对兔子。
第5个月:4对兔子。
。。。。。。
规律:F(n)=F(n-1)+F(n-2)
代码实现:
import java.util.Scanner;
public class P3_2 {
public static int fibonacci(int n)
{
int t1,t2;
if(n==1 || n==2)
{
return 1;
}
else
{
t1=fibonacci(n-1);
t2=fibonacci(n-2);
return t1+t2;
}
}
public static void main(String[] args) {
System.out.println("递推算法求解兔子产仔问题!");
System.out.print("请先输入时间:");
Scanner input=new Scanner(System.in);
int n=input.nextInt(); //时间
int num=fibonacci(n); //求解
System.out.println("经过"+n+"月的时间,共能繁殖成"+num+"对兔子!");
}
}
运行结果:
递推算法求解兔子产仔问题!
请先输入时间:12
经过12月的时间,共能繁殖成144对兔子!