今日JAVA——练习题五

JAVA每日随手练【方法的重载与递归】

1.求最大值方法的重载

功能:在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系
代码:

import java.util.Scanner;
public class test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("选择功能,1.求两个整数的最大值 2.求两个小数的最大值 3.求两个小数和一个整数的大小关系,请输入数字:");
        int m = sc.nextInt();
        switch(m){
            case 1:
                System.out.print("请输入第一个整数:");
                int a1 = sc.nextInt();
                System.out.print("请输入第二个整数:");
                int a2 = sc.nextInt();
                int max1 = max(a1,a2);
                System.out.println("最大值为:"+max1);
                break;
            case 2:
                System.out.print("请输入第一个小数:");
                double a3 = sc.nextDouble();
                System.out.print("请输入第二个小数:");
                double a4 = sc.nextDouble();
                double max2 = max(a3,a4);
                System.out.println("最大值为:"+max2);
                break;
            case 3:
                System.out.print("请输入第一个小数:");
                double a5 = sc.nextDouble();
                System.out.print("请输入第二个小数:");
                double a6 = sc.nextDouble();
                System.out.print("请输入第三个整数:");
                int a7 = sc.nextInt();
                double max3 = max(a5,a6,a7);
                double min3 = min(a5,a6,a7);
                System.out.println("三个数的最大值为:"+max3);
                System.out.println("三个数的最小值为:"+min3);
                break;
        }
        sc.close();
    }
    public static int max(int a1,int a2){
        return a1>a2?a1:a2;
        }
    public static double max(double a3,double a4){
        return a3>a4?a3:a4;
        }
    public static double min(double a5,double a6){
        return a5<a6?a5:a6;
        }
    public static double max(double a5,double a6,int a7){
        return max(a5,a6)>a7?max(a5,a6):a7;
        }
    public static double min(double a5,double a6,int a7){
        return min(a5,a6)<a7?min(a5,a6):a7;
        }
}

运行结果:
在这里插入图片描述

2.求和的重载

功能:在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果
代码:

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        System.out.println("两个整数的和是"+add(m,n));
        double i = sc.nextDouble();
        double j = sc.nextDouble();
        double k = sc.nextDouble();
        System.out.println("三个小数的和是"+add(i,j,k));
        sc.close();    
    }
    public static int add(int a,int b) {
        return a+b;
    }
    public static double add(double i,double j,double k) {
        return i+j+k;
    }
}

运行结果:
在这里插入图片描述

3.递归打印数字的每一位

功能:按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)

import java.util.Scanner;

public class test3 {
    public static void main(String[] args) {
        System.out.println("输入数字:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println("每一位数字为:");
        fun(n);
        sc.close();
    }
    public static void fun(int n){
        if(n>9){
            fun(n/10);    //除法(取模),对于int则是取除法结束后的整数,/10则等于去掉个位数  例如:456789  依次去掉》9 8 7 6 5 4
        }
        System.out.print(" "+n%10+" "); //取余,获取个位数 依次是《4 5 6 7 8 9
    }
}

运行结果:
在这里插入图片描述

4.递归求和

要求:递归求 1 + 2 + 3 + … + 10

public class test4{
    public static void main(String[] args) {
        int num=10;  
        System.out.println("1+2+3+...+10的值为:"+add(num));
    }

    public static int add(int num){
        if(num == 1){
            return 1;
        }else{
            return num +add(num - 1);  //依次是add(9)>>add(1)==1,也就是10+add(9)==10+9+num(8)+....==10+9+..+2+num(1)==10+9+8+..+1
        }
    }
}

运行结果:
在这里插入图片描述

5.求斐波那契数列的第 N 项

要求:求斐波那契数列的第 N 项

//递归求斐波那契数列的第 N 项
import java.util.Scanner;

public class test5 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in) ;
        System.out.print("请输入要求的斐波那契数列的项数:");
        int m = sc.nextInt();
        System.out.println("斐波那契数列的"+ m +"项的值为:"+fib(m));
        sc.close();
    }
    public static int fib(int n){
        if(n<3){
            return 1;
        }else{
        int a1 = 1;
        int a2 = 1;
        int sum = 0;
        for (int i=3;i<=n;i++){
            sum = a1 +a2;
            a1 = a2;
            a2 = sum;
            }
        return sum;
        }
    }
}

运行结果:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值