编写两个类,a和b,a创建的对象可以计算两个正整数的最大公因数,b创建的对象可以计算两个数的最小公倍数。要求:b类中有一个成员变量是用a类声明的对象
时间: 2023-05-25 08:07:17 浏览: 74
Java代码如下:
```java
public class A {
public int gcd(int a, int b) { // 计算最大公因数
if (a < b) { // 交换a和b,使a >= b
int tmp = a;
a = b;
b = tmp;
}
if (b == 0) { // b为0时,a就是最大公因数
return a;
} else { // 否则递归计算a和b的最大公因数
return gcd(b, a % b);
}
}
}
public class B {
private A objA; // 声明A类对象
public B(A objA) { // 构造方法,初始化A类对象
this.objA = objA;
}
public int lcm(int a, int b) { // 计算最小公倍数
int g = objA.gcd(a, b); // 使用A类对象计算最大公因数
return a / g * b; // 最小公倍数等于a和b之积除以最大公因数
}
}
```
使用示例:
```java
A a = new A();
B b = new B(a);
System.out.println(a.gcd(12, 18)); // 输出6
System.out.println(b.lcm(12, 18)); // 输出36
```
阅读全文