1、写一个递归方法,输入一个非负整数,返回组成它的数字之和
思路:当输入的数字为个位数时,可以直接打印。所以递归出口为个位数。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入一个整数:");
int m=input.nextInt();
System.out.println(sumDigit(m));;
}
public static int sumDigit(int m) {
if (m>9) {
return m%10+sumDigit(m/10);
}
return m;
}
}
2、递归求斐波那契数列的第 N 项
斐波那契数列是指这样一个数列:1、1、2、3、5、8、13、21、34、55、89……
规律:前两项都是一,从第三项开始,每一项都等于前两项之和。
递归出口:n<=2.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int n = input.nextInt();
System.out.println("第" + n + "位的数字是" + fib(n));
}
public static int fib(int n){
if(n<=2){
return 1;
}
return fib(n - 1) + fib(n - 2);
}
}