weixin_52386338 2021-10-12 13:47 采纳率: 83.3%
浏览 37
已结题

关于Java的编程题,有哪位能解答解答

1、定义一个类,有方法实现求最大公约数
2、定义上述类的子类,有方法实现求最小公倍数
3、在public class 中,通过键盘输入,计算和输出结果
4、要求类中的方法的传值,采用带参数和不带参数的两种方式,分别实现

  • 写回答

1条回答 默认 最新

  • a5156520 2021-10-12 17:04
    关注
    
    import java.util.Scanner;
    
    /**
     *
     * https://zhidao.baidu.com/question/464132909.html
     */
    public class GCD_LCM {
    
        /**
         * https://ask.csdn.net/questions/7530425?spm=1005.2025.3001.5141
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            /*
             * 百度关键词:java 获取键盘输入 两个整数
             * 参考链接:
             *        ————————————————
            https://www.cnblogs.com/Celiachen/p/13846842.html
             * 
             * */
    
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入两个需要计算最大公约数的整数:");
            int a=sc.nextInt();
            int b=sc.nextInt();
            System.out.println(a+"和"+b+"的最大公约数是:"+new GCD().FindResult(a, b));
            System.out.println("请输入两个需要计算最小公倍数的整数:");
            a=sc.nextInt();
            b=sc.nextInt();
            System.out.println(a+"和"+b+"的最小公倍数是:"+new LCM().FindResult(a, b));
            
            new GCD().FindResultNoArgs();
            new LCM().FindResultNoArgs();
        }
    
    }
    
    /**
     * 
     * 百度关键词:最大公约数 算法
     *https://www.imooc.com/article/23830
     */
    class GCD{
        
        /**
         * 辗转相减法
         * 算法参考:
         *     https://blog.csdn.net/yxdayd/article/details/44774015
        
         */
        public int FindResult(int a ,int b) {
            
            while(true) {
                //如果a大于b,则将a的值设为a原本的值减去b的值
                if (a > b)
                    a -= b;
                else if (a < b) //如果a小于b,则将b的值设为b原本的值减去a的值
                    b -= a;
                else        //如果经过运算,最后a和b的相等,则返回a的值,即为原本a和b的最大公约数
                    return a;
            }        
        }
        
        /*不带参数版本
         * 不知道这个我理解对意思没?
         * 
         * */
        public void FindResultNoArgs() {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入两个需要计算最大公约数的整数:");
            int a=sc.nextInt();
            int b=sc.nextInt();    
            System.out.println(a+"和"+b+"的最大公约数是:"+ FindResult(a,b)); 
        }
    }
    
    //求最小公倍数  百度关键词:最小公倍数 算法
    class LCM extends GCD{
        
        /*
         * 算法参考:
         https://bbs.csdn.net/topics/90155042?list=1079159 
         作者:Norris_Zhang 
         * */
    
        public int FindResult(int a ,int b) {
            
            //最小公倍数是两数乘积除以最大公约数。
            //百度关键词 :子类继承父类 重写
            //参考链接:https://blog.csdn.net/qq_43527632/article/details/83475439
            int gbs = a * b / super.FindResult(a,b);
            
            return gbs;
            
        }
        /* 无参数版,不知道我理解对意思么?*/
        public void FindResultNoArgs() {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入两个需要计算最大公约数的整数:");
            int a=sc.nextInt();
            int b=sc.nextInt();
            
            System.out.println(a+"和"+b+"的最小公倍数是:"+FindResult(a, b));
            
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真