用Java编写两个类:A 和 B,A 创建的对象可以计算两个正整数的最大公约数,B 创建的对象可以计算两个数的最小公倍数。要求:B类中有一个成员变量是用A类声明对象。
时间: 2023-06-01 15:02:51 浏览: 50
以下是实现代码:
Class A:
```java
public class A {
public int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
```
Class B:
```java
public class B {
private A a;
public B() {
a = new A();
}
public int lcm(int a, int b) {
return (a * b) / this.a.gcd(a, b);
}
}
```
在类B中,使用A类的对象a调用gcd方法,计算最大公约数,然后用最大公约数计算最小公倍数。
相关问题
用java编写两个类:A和B,A创建的对象可以计算两个正整数的最大公约数,B创建的对象可以计算两个数的最小公倍数。要求:B类中有一个成员变量是用A类声明对象。
A类代码:
```java
public class A {
public int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
}
```
B类代码:
```java
public class B {
private A a;
public B() {
a = new A();
}
public int lcm(int a, int b) {
int gcd = this.a.gcd(a, b);
return a * b / gcd;
}
}
```
在B类中,我们创建了一个A对象并将其存储在成员变量a中。在lcm方法中,我们使用a对象来调用gcd方法来计算最大公约数,并使用它来计算最小公倍数。
编写两个类:A和B,A创建的对象可计算两个正整数的最大公约数,B 创建的对象可以计算两个数的最小公倍数。要求B类中有一个成员变量用A类声 明的对象java
以下是Java代码实现:
```
class A {
public int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
class B {
private A a;
public B(A a) {
this.a = a;
}
public int lcm(int a, int b) {
return (a * b) / this.a.gcd(a, b);
}
}
```
在这里,类A实现了计算最大公约数的方法gcd(),它使用递归算法实现了欧几里得算法。类B实现了计算最小公倍数的方法lcm(),它使用类A声明的对象a调用gcd()方法来计算最大公约数,最后返回最小公倍数。在类B的构造函数中,需要传入一个A类的对象,以便在计算最小公倍数时使用。