永发信息网

用java写一个求最大公约数和最小公倍数的问题。

答案:3  悬赏:70  手机版
解决时间 2021-03-10 14:48
import java.util.*;
///求最大公约数 父类
class Maxcommon {
public int a , b , i , commyue ;
public Maxcommon(int a , int b){
this.a = a ;
this.b = b ;
i = 1 ;
commyue = 0;
}
public void F1(){ //////F1代表求最大公约是的方法
int c = a ;
if (c < b)
c = b ;
while( i <= c){
if ( a % i == 0 && b % i == 0)
commyue = i ;
i++ ;
}
System.out.println("两个数的最大公约数是=" + commyue );
}
}
class Mincommon extends Maxcommon{
private int commbe ;
public int a , b ;
public Mincommon( int a , int b){
super( a , b);
}
public void F2(){
this.commbe = this.a * this.b / super.commyue ;
System.out.println("两个数的最小公倍数是:" + commbe);
}
}

public class Common {
public static void main(String []args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要比较的两个数:");
Maxcommon mac = new Maxcommon(sc.nextInt(),sc.nextInt()) ;
Mincommon mic = new Mincommon(mac.a , mac.b) ;
mac.F1();
mic.F2();
}
}

语法没有问题,最小公倍数出不来。哪位大神帮忙一下。
最佳答案
public void F2(){
this.commbe = this.a * this.b / super.commyue ;
System.out.println("两个数的最小公倍数是:" + commbe);
}
你这里面的this.commbe = this.a * this.b / super.commyue ;你知道super.commyue的值是几吗?因为你继承了最大公约数的类,而那个类的构造函数里将commyue赋值为0,所以你这条除法算式的除数为零,是错的。我想不懂你的最小公约数的类干嘛要继承最大公约数的类。
全部回答
import java.util.*; public class lianxi06 { public static void main(string[] args) { int a ,b,m; scanner s = new scanner(system.in); system.out.print( "键入一个整数: "); a = s.nextint(); system.out.print( "再键入一个整数: "); b = s.nextint(); deff cd = new deff(); m = cd.deff(a,b); int n = a * b / m; system.out.println("最大公约数: " + m); system.out.println("最小公倍数: " + n); } } class deff{ public int deff(int x, int y) { int t; if(x < y) { t = x; x = y; y = t; } while(y != 0) { if(x == y) return x; else { int k = x % y; x = y; y = k; } } return x; } }
[java] view plaincopy import java.util.*; public class MaxCommonDivisorAndMinCommonMultiple { public static void main(String[] args) { Scanner scan = new Scanner(System.in);// 接收控制台输入的信息 System.out.print("请输入第一个整数:"); int num1 = scan.nextInt(); // 取出控制台输入的信息 System.out.print("请输入第二个整数:"); int num2 = scan.nextInt(); // 取出控制台输入的信息 System.out.println(maxCommonDivisor(num1, num2));// 调用maxCommonDivisor()方法 System.out.println(minCommonMultiple(num1, num2));// 调用minCommonMultiple()方法 } // 递归法求最大公约数 public static int maxCommonDivisor(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } if (m % n == 0) {// 若余数为0,返回最大公约数 return n; } else { // 否则,进行递归,把n赋给m,把余数赋给n return maxCommonDivisor(n, m % n); } } // 循环法求最大公约数 public static int maxCommonDivisor2(int m, int n) { if (m < n) {// 保证m>n,若m<n,则进行数据交换 int temp = m; m = n; n = temp; } while (m % n != 0) {// 在余数不能为0时,进行循环 int temp = m % n; m = n; n = temp; } return n;// 返回最大公约数 } // 求最小公倍数 public static int minCommonMultiple(int m, int n) { return m * n / maxCommonDivisor(m, n); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
鲍鱼怎么弄来吃?如果是蒸需要蒸多久?
如何把 Lumia 800 刷 Windows Phone 8 系统?
两个数的和为25,这两个数的差为5.求这两个数,
储贸大厦在哪里啊,我有事要去这个地方
简化版本ps水印怎么设置?
银行卡休眠往里打钱,没取注销了怎么办
目隐都市的演绎者如月唱的歌叫什么
“在希腊,山岭纵横,河流交错,几乎没有一个
家具上油漆是亮光的好还是哑光的好呢?
我的世界,小本的真名叫什么? 50分
20w的电烙铁选择多粗的焊锡丝
穿越作者受养成黑化攻,超有占有欲超宠
综合布线系统图中的BD,FD,LIU是什么意思
晋南朝时谢灵运的田庄“春秋有待,朝夕须资。
这个世界怎么都是你
推荐资讯
几十年前,新西兰有一个牧场的大片牧草长势很
东至县官港镇司法所怎么去啊,有知道地址的么
高福记麻辣烫地址有知道的么?有点事想过去
各位大佬steam转区
关于康宝莱的业务员
大雁为什么要迁徙?
宝石粮油店在什么地方啊,我要过去处理事情
电梯轿厢导轨和对重导轨达到安装质量标准,必
汽车五档行起来不好挂是什么原因
捷豹跑车的价格
以下关于旅游规制的表述正确的是()。A.旅游规
in the end和at the end的区别
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?