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)); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)
- ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
- ¥20 CST怎么把天线放在座椅环境中并仿真