版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
重载和递归
重载:
有些时候我们需要用一个函数同时兼容多种参数的情况, 我们就可以使用到方法重载。
重载的要求,重载的函数名字一样。
重载2个不同:
重载中传入函数的参数个数不一样或者重载中传入参数的类型不一样。
示例:1
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = addInt(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = addDouble(a2, b2);
System.out.println("ret2 = " + ret2);
}
public static int addInt(int x, int y) {
return x + y;
}
public static double addDouble(double x, double y) {
return x + y;
}
}
示例2:
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = add(a2, b2);
System.out.println("ret2 = " + ret2);
double a3 = 10.5;
double b3 = 10.5;
double c3 = 20.5;
double ret3 = add(a3, b3, c3);
System.out.println("ret3 = " + ret3);
}
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(double x, double y, double z) {
return x + y + z;
}
}
方法递归:一个方法在执行过程中调用自身, 就称为 “递归”。
示例1:求N得阶乘
import java.util.Scanner;
public class Test1{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int n = sc.nextInt();
int ret = Return(n);
System.out.println(ret);
}
public static int Return(int n){
if(n==1){
return 1;
}
return n*Return(n-1);
}
}
示例2:求1+2+3+…+n
import java.util.Scanner;
public class Test2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int n = sc.nextInt();
int ret = ADD(n);
System.out.println(ret );
}
public static int ADD(int n){
if(n==1){
return 1;
}
return n+ADD(n-1);
}
}
示例3:把一个数字每一位加起来
import java.util.Scanner;
public class Test4{
public static void main(String[] ars){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int n = sc.nextInt();
int ret = ADD(n);
System.out.println(ret );
}
public static int ADD(int n){
if(n<10){
return n;
}
return n%10+ADD(n/10);
}
}
示例4:斐波那契数列
import java.util.Scanner;
public class Test5{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int n = sc.nextInt();
int ret = fib(n);
System.out.println(ret);
}
public static int fib(int n){
if(n==1 || n==2){
return 1;
}
return fib(n-1)+fib(n-2);
}
}