每天努力一点点
-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
查看评论