递归
- A方法调用B方法,我们容易理解!
- 递归就是: A方法调用A方法!就是自己调用自己
- 利用递归可以简单的程序来解决一下复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略之需要少量多额程序就可以描述出解题过程中需要的多次重复计算,大大地减少了程序的代码量,递归的能在于用有限的语句来定义对象的无限集合
- 递归结构包括两个部分:
- 递归头:什么时候不调用自身方法。如果没有头,将会陷入死循环
- 递归题:什么是时候需要调用自身方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-icvB1e9q-1601887878753)(C:\Users\黄松松\Desktop\12.PNG)]
package Method;
/**
* @author java小白松
*/
public class Dome05 {
//阶层
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f(int n) {
if (n == 1) {// 这是判断n 是否为1
return 1;
} else {
return n*f(n-1);//f(n-1)是回去再掉自身的方法f()当n为1的时候该方法结束
}
}
}
超级简单的两个数的加减乘除
package Method;
import com.sun.xml.internal.stream.Entity;
import java.security.PublicKey;
import java.util.Scanner;
/**
* @author java小白松
*/
public class Dome06 {
public static void main(String[] args) {
Dome06 dome06 =new Dome06();
System.out.println("请输入两个数");
int i=0;
double a=0;
double b=0;
Scanner scanner=new Scanner(System.in);
if (scanner.hasNextLine()){
a=scanner.nextInt();
b= scanner.nextInt();
}
System.out.println("请选择计算方式");
if (scanner.hasNextLine()){
i =scanner. nextInt();
}
switch (i ){
case 1:
double sum = dome06.add(a,b);
System.out.println(sum);
break;
case 2:
double sum1=dome06.div(a,b);
System.out.println(sum1);
break;
case 3:
double sum2=dome06.mul(a,b);
System.out.println(sum2);
break;
case 4:
double sum4=dome06.sub(a,b);
System.out.println(sum4);
break;
}
scanner.close();
}
public double add(double a,double b){
return a+b;
}
public double sub(double a,double b){
if (a>=b){
return a-b;
}else{
return b-a;
}
}
public double mul(double a,double b){
return a*b;
}
public double div(double a,double b){
return a/b;
}
}
turn a*b;
}
public double div(double a,double b){
return a/b;
}
}