求两个数的最大公约数和最小公倍数
2013-10-18 17:18
155 查看
题目要求:
编写一个类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数。然后编写一个从该类派生的子类,并重写祖先的 f 方法,且返回a,b 的最小公倍数。要求在子类重写父类方法时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m 获得最小公倍数。最后写一个测试程序,分别调用父类和子类的方法。
代码实现:
package Approximate;
//求最大公约数的类
public class Approximate {
//求得最大公约数的方法
public int f(int a,int b){
int min,m,n,app=0;
//将a,b中较小的一个赋给min
min=Math.min(a, b);
for(int i=min;i>=1;i--){
m=a%i;
n=b%i;
//两数均对i取余后等于0,即为两数的最大公约数
if((m==0)&&(n==0)){
app=i;break;
}
}
return app;
}
}
package Approximate;
//最小公倍数数类
public class Multiple extends Approximate{
public int f(int a,int b){
//m为a,b的最大公约数
int m=super.f(a, b);
int n=(a*b)/m;
return n;
}
}
package Approximate;
import java.util.Scanner;
public class Text {
/**
* @author HuangRong
* @date 2013/10/17
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//m ,n分别代表最大公约数和最小公倍数
int m,n;
Scanner input=new Scanner(System.in);
System.out.println("请输入第一个数的值:");
int a=input.nextInt();
System.out.println("请输入第二个数的值:");
int b=input.nextInt();
Approximate app=new Approximate();
m=app.f(a,b);
Multiple mul=new Multiple();
n=mul.f(a, b);
System.out.println("a和b的最大公约数为:");
System.out.println(m);
System.out.println("a和b的最小公倍数为:");
System.out.println(n);
}
}
编写一个类,该类有一个方法public int f(int a,int b),返回a,b的最大公约数。然后编写一个从该类派生的子类,并重写祖先的 f 方法,且返回a,b 的最小公倍数。要求在子类重写父类方法时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m 获得最小公倍数。最后写一个测试程序,分别调用父类和子类的方法。
代码实现:
package Approximate;
//求最大公约数的类
public class Approximate {
//求得最大公约数的方法
public int f(int a,int b){
int min,m,n,app=0;
//将a,b中较小的一个赋给min
min=Math.min(a, b);
for(int i=min;i>=1;i--){
m=a%i;
n=b%i;
//两数均对i取余后等于0,即为两数的最大公约数
if((m==0)&&(n==0)){
app=i;break;
}
}
return app;
}
}
package Approximate;
//最小公倍数数类
public class Multiple extends Approximate{
public int f(int a,int b){
//m为a,b的最大公约数
int m=super.f(a, b);
int n=(a*b)/m;
return n;
}
}
package Approximate;
import java.util.Scanner;
public class Text {
/**
* @author HuangRong
* @date 2013/10/17
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//m ,n分别代表最大公约数和最小公倍数
int m,n;
Scanner input=new Scanner(System.in);
System.out.println("请输入第一个数的值:");
int a=input.nextInt();
System.out.println("请输入第二个数的值:");
int b=input.nextInt();
Approximate app=new Approximate();
m=app.f(a,b);
Multiple mul=new Multiple();
n=mul.f(a, b);
System.out.println("a和b的最大公约数为:");
System.out.println(m);
System.out.println("a和b的最小公倍数为:");
System.out.println(n);
}
}
相关文章推荐
- java中求两个数的最小公倍数,最大公约数的简便方法
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 编程求两个数的最大公约数和最小公倍数
- 两个数的最大公约数和最小公倍数(利用辗转相除法)
- 求两个数的最大公约数和最小公倍数
- C语言解决“两个数的最大公约数和最小公倍数问题”
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 用C语言求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数与最小公倍数
- c语言求两个数的最大公约数和最小公倍数
- 求两个数的最大公约数和最小公倍数
- OJ循环——求两个数的最大公约数与最小公倍数(函数法)
- 求两个数的最大公约数和最小公倍数
- 用C++求两个数的最大公约数和最小公倍数
- 两个数的最大公约数和最小公倍数,数学求法
- 用C语言求两个数的最大公约数和最小公倍数
- java求两个数的最大公约数和最小公倍数