1、定义一个类,有方法实现求最大公约数
2、定义上述类的子类,有方法实现求最小公倍数
3、在public class 中,通过键盘输入,计算和输出结果
4、要求类中的方法的传值,采用带参数和不带参数的两种方式,分别实现
关于Java的编程题,有哪位能解答解答
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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)); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报