问题描述:
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
找到递归的递推公式后,使用代码是实现就比较好理解了
import java.util.*; public class Rabbit { public static void main(String[] args){ System.out.println("请输入一个整数来表示你希望计算的月份:"); Scanner scan= new Scanner(System.in); int i=scan.nextInt(); int s=calc(i); System.out.printf("%d个月份后兔子的数量为:%d",i,s); } public static int calc(int n){ if(n==1||n==2){ return 1; } else{ return calc(n-1)+calc(n-2); } } }
二:使用递归的思想实现计算一个数字的阶乘
import java.util.*; public class RecursiveFactorial { public static void main(String[] args){ System.out.println("请输入您想计算的阶乘的整数n:"); Scanner scan = new Scanner(System.in); if(scan.hasNextInt()){ int n=scan.nextInt(); System.out.printf("您输入的数字是:%d\n",n); int result=calc_Factorial(n); System.out.printf("%d的阶乘为:%d",n,result); } else{ System.out.println("输入不合法,请重新输入"); } } public static int calc_Factorial(int n){ if(n==1){ return 1; } else{ return n*calc_Factorial(n-1); } } }