java
求最大公約數、最小公倍數
具體要求:
(1)撰寫一個類Gcd:該類有一個方法public int f(int a,int b),該方法回傳a和b的最大公約數;
(2)撰寫Gcd的子類Gcm:要求子類重寫方法f,且重寫的方法將回傳a和b的最小公倍數。要求在重寫的方法中首先呼叫被隱藏的方法,回傳a,b的最大公約數m,然后將乘積(a*b)/m回傳。
(3)撰寫測驗類GcdGcmTest:創建一個父類的物件,利用該物件求得兩個整數的最大公約數;然后該物件作為子類的上傳型物件,呼叫方法f回傳最小公倍數。運行結果類似下圖所示:
請輸入第一個整數:27
請輸入第二個整數:45
27和45的最大公約數為:9
27和45的最小公倍數為:135
public class Gcd {
public int f(int a,int b){
if(a < b){ // 保證a為最大值
int temp = a;
a = b;
b = temp;
}
while(b > 0){ // 求最大公約數
if(a == b){
return a;
}
else{
int temp = a%b;
a = b;
b = temp;
}
}
return a;
}
}
public class Gcm extends Gcd{
public int f(int a,int b){
int m=super.f(a, b);
int result=(a*b)/m;
return result;
}
}
import java.util.Scanner;
public class GcdGcmTest {
public static void main(String[] args) {
Gcd gcd;
gcd=new Gcm();
Gcd g=new Gcd();
Scanner sc1=new Scanner(System.in);
System.out.print("請輸入第一個整數:");
int a=sc1.nextInt();
System.out.print("請輸入第二個整數:");
int b=sc1.nextInt();
int m=g.f(a, b);
System.out.println(a+"和"+b+"的最大公約數為:"+m);
int n=gcd.f(a, b);
System.out.println(a+"和"+b+"的最小公倍數為:"+n);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/99020.html
標籤:Eclipse
上一篇:Java編程問題
