代码
import java.util.Scanner;public class Testified {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入月数:");int n = scanner.nextInt();System.out.println("第"+n+"个月的兔子总数是:"+nums(n));}public static int nums(int n){if (n<3){return 1;}else {return nums(n-1)+nums(n-2);}}
}
结果:
分析
这是个斐波那契数列问题,斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…自然中的斐波那契数列这个数列从第3项开始,每一项都等于前两项之和。根据:
幼仔对数=前月成兔对数
成兔对数=前月成兔对数+前月幼仔对数
总体对数=本月成兔对数+本月幼仔对数
计算出兔子数