所谓递归其实就是从前有座山,山上有座庙,庙里有个老和尚和小和尚,老和尚给小和尚讲故事,讲的是从前有座山...,无休止的重复一件事,但是不同的是里边所给的参数不同,这个是由我们来定的。而且我们还要给出口,也就是结束的地方。
递归求阶乘
代码:
import java.util.Scanner;
public class 递归求阶乘 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int res = f(n);
System.out.println(res);
}
private static int f(int i) {
if (i>1){
return f(i-1)*i;
}
return 1;
}
}
分析:出口是i<=1,当i<=1时,我们就直接return 1;不让他继续调用。需要做的是:i*i-1,我们怎么循环来做呢就是通过改变参数循环调用。
递归求1-100的和
import java.util.Scanner;
public class 递归输出加和100 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int res = f(n);
System.out.println(res);
}
private static int f(int i) {
int sum = 0;
sum = sum + i;
if (i>1) return f(i-1)+sum;
return 1;
}
}
输出100-1的数
public class 递归输出100 {
public static void main(String[] args) {
f(100);
}
private static int f(int i){
System.out.println(i);
if (i>1) return f(i-1);
return 1;
}
}