飞道的博客

方法的递归(Java)学习总结(续)

380人阅读  评论(0)

每天努力一点点
-Make a little progress every day


前言

随着时代的发展编程语言也在进步,Java语言更是成为当今时代潮流,本文简述了阿杰对Java语言的初步认识,并记录阿杰初次进行Java入门学习的部分重要基础内容;

1、什么是递归

一个方法在执行过程中被自身调用就称为“递归”
(两位数字及以上使用递归)

(1)
任意输入一个1-20之间的数计算其阶乘;
1、确定终止条件:n!最后一个数为一
2、确定关系式(公式);n=n(n-1);

      package com.company;
import java.util.Scanner;
public class Main {
   
    public static int fun(int n) {
   
        if (n == 1) {
   //终止条件
            return 1;
        }
        return n*fun(n-1);//调用自身
    }
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner (System.in);
        //从键盘输入一个整数或字符串或浮点数(先输字符串在输数字)
        System.out.println("请输入数字");
        while(scanner.hasNext()){
   
            //循环输入
        int n = scanner.nextInt();
        n = fun(n);//调用方法
        System.out.println(n);
        System.out.println("请输入数字");
    }
    }
}

例(2)
输入一个数,求1到这个数字之和;

           package com.company;
import java.util.Scanner;
public class Main {
   

``public static int fun2(int n){
   
        if(n == 1){
   //确定了终止条件
            return 1;
        }
        return n+fun2(n-1);
    }
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner (System.in);
        //从键盘输入一个整数或字符串或浮点数(先输字符串在输数字)
        System.out.println("请输入数字");
        while(scanner.hasNext()){
   
            //循环输入
        int n = scanner.nextInt();
        n = fun2(n);//调用方法
        System.out.println(n);
        System.out.println("请输入数字");
    }
    }
}

例(3)
输入一个非负整数,按顺序输出其每一位;

   package com.company;
import java.util.Scanner;
public class Main {
   
	`public static void fun3(int n){
   
        if(n<=9){
                   //终止条件
            System.out.println(n%10);
            return;
        }
        fun3(n/10);
        System.out.println(n%10);
    }
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner (System.in);
        //从键盘输入一个整数或字符串或浮点数(先输字符串在输数字)
        System.out.println("请输入数字");
        while(scanner.hasNext()){
   
            //循环输入
        int n = scanner.nextInt();
         fun3(n);//调用方法
        System.out.println("请输入数字");
    }
    }
}

例(4)
输入任意一个非负数字,求其每位数字相加之和;

      package com.company;
import java.util.Scanner;
public class Main {
   
//输入任意数,求其每一位上的数字相加之和
    public static int fun3(int n){
   
  if(n<=9){
   
return n%10;
  }
  return   n%10 + fun3(n/10);
  }
    public static void main(String[] args) {
   
    Scanner scanner = new Scanner(System.in);
    while(scanner.hasNext()){
   
        int n = scanner.nextInt();
        System.out.println(fun3(n));
    }
    }
}

总结:递归函数就是大事化小,找到终止条件,找到关系式,进行递归;
加油!!!


转载:https://blog.csdn.net/m0_56774467/article/details/115452140
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场