递归
问题一:递归求 1 + 2 + 3 + … + 10
public static void main(String[] args) {
int a = 10;
System.out.println(sum(a));
}
public static int sum(int a){
if (a == 1){
return 1;
}
return a+sum(a-1);
}
问题二:写一个递归方法,输入一个非负整数,返回组成它的数字之和.
例如,输入 1729, 则应该返回1+7+2+9,它的和是19
public static void main(String[] args) {
int a = 1729;
System.out.println(sum(a));
}
public static int sum(int a){
int num = a%10;
if (a < 10){
return num;
}
return num+sum(a/10);
}
问题三:求斐波那契数列的第 N 项
public static void main(String[] args) {
int a = 6;
System.out.println(sum(a));
}
public static int sum(int a){
int f1 = 1;
int f2 = 2;
if (a == 1){
return f1;
}
if (a == 2 ){
return f2;
}
return sum(a-1)+sum(a-2);
}
问题四:递归求n得阶乘
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println(factor(a));
}
public static int factor(int a){
if (a == 1){
return 1;
}
return a*factor(a-1);
}
此时要注意