ToB企服应用市场:ToB评测及商务社交产业平台

标题: 关于递归详解!!(不会打我) [打印本页]

作者: 络腮胡菲菲    时间: 2022-8-24 06:04
标题: 关于递归详解!!(不会打我)
递归

递归主要包含两个部分:递归头和递归体

举个例子:
我们用阶乘来测试一下递归:
  1. public class Demo06 {
  2.     public static void main(String[] args) {
  3.         //阶乘  eg:4的阶乘,就是4!=4*3*2*1
  4.         System.out.println(j(5));
  5.     }
  6.     public static int j(int n){
  7.         if (n==1){
  8.             return 1;
  9.         }else {
  10.             return n*j(n-1);
  11.         }
  12.     }
  13. }
复制代码
解析:可以看出我们是要求一个4的阶乘,下面写了一个方法来求阶乘,方法里面有一个int类型的参数n。当n为4的时候不满足if语句那么就执行else中的语句,返回一个n*f(n-1),也就是4f(3),再把3带入这个方法,就变成4×3×2f(2),,最后当n==1时,满足上面if的条件,返回结果为120
输出:
  1. 120
复制代码
练习:写一个简单的计算器程序
要求:
  1. public class Demo07 {
  2.     public static void main(String[] args) {
  3.         x();
  4.     }
  5.     public static double x(){
  6.         Scanner sc=new Scanner(System.in);
  7.         System.out.println("请输入要计算的第一个数:");
  8.         double m=sc.nextDouble();
  9.         System.out.println("输入要执行的运算符号(+、-、*、/)中的一个");
  10.         String k=sc.next();
  11.         System.out.println("输入第二个数进行计算:");
  12.         double n=sc.nextDouble();
  13.         switch (k){
  14.             case"+":
  15.                 System.out.println(plus(m,n));
  16.                 break;
  17.             case "-":
  18.                 System.out.println(subtract(m,n));
  19.                 break;
  20.             case "*":
  21.                 System.out.println(multiply(m,n));
  22.                 break;
  23.             case "/":
  24.                 System.out.println(divide(m,n));
  25.                 break;
  26.             default:
  27.                 System.out.println("您输入的运算符有误");
  28.         }
  29.         return 0;
  30.     }
  31.     //编写四个方法,等
  32.     public static double plus(double m,double n){
  33.         return m+n;
  34.     };
  35.     public static double subtract(double m,double n){
  36.         return m-n;
  37.     };
  38.     public static double multiply(double m,double n){
  39.         return m*n;
  40.     };
  41.     public static double divide(double m,double n){
  42.         return m/n;
  43.     };
  44. }
复制代码
输入数字进行测试:
  1. 请输入要计算的第一个数:
  2. 5
  3. 输入要执行的运算符号(+、-、*、/)中的一个
  4. /
  5. 输入第二个数进行计算:
  6. 5
  7. 1.0
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4