递归打印数字的每一位(按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归))
public static void print(int n) {
if(n < 10) {
System.out.println(n);
}else {
print(n / 10);
System.out.println(n % 10);
}
}
public static void main5(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
print(n);
}
递归求解汉诺塔问题
public static void move(char pos1,char pos2) {
System.out.println(pos1+" -> "+pos2+" ");
}
public static void hanoi(int n,char pos1,char pos2,char pos3) {
if(n == 1) {
move(pos1,pos3);
}else {
hanoi(n - 1,pos1,pos3,pos2);
move(pos1,pos3);
hanoi(n - 1,pos2,pos1,pos3);
}
}
public static void main7(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
hanoi(n, 'A', 'B', 'C');
}
//6、递归求斐波那契数列的第 n 项
public static int fib2(int n) {
if(n == 1 || n == 2) {
return 1;
}
return fib2(n-1) + fib2(n-2);
}
public static void main6(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(fib2(n));
}
返回的数字之和(写一个递归方法,输入一个非负整数,返回组成它的数字之和)
public static int fun(int n) {
if(n < 10) {
return n;
}
return n % 10 + fun(n / 10);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(fun(n));
}