编写两个类,A 和B.A 创建的对象可以计算两个正整数的最大公约数,B 创建的对象可以计算两个数的最小公倍数。 要求:B 类中有一个成员变量是用A类声明对象的。P
时间: 2023-06-15 15:07:59 浏览: 82
Java求两个正整数的最大公约数和最小公倍数
5星 · 资源好评率100%
以下是代码实现:
```python
class A:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def gcd(self):
while self.num2 != 0:
temp = self.num1 % self.num2
self.num1 = self.num2
self.num2 = temp
return self.num1
class B:
def __init__(self, num1, num2, a_obj):
self.num1 = num1
self.num2 = num2
self.a_obj = a_obj
def lcm(self):
gcd = self.a_obj.gcd()
lcm = (self.num1 * self.num2) / gcd
return lcm
```
这里我们定义了两个类 A 和 B,其中 A 类用于计算两个正整数的最大公约数,B 类用于计算两个数的最小公倍数。在 B 类中我们定义了一个成员变量 a_obj,它是用 A 类声明的对象。这样我们就可以在 B 类中调用 A 类中的方法了。
在 A 类中,我们定义了一个 gcd 方法,用于计算两个正整数的最大公约数。在 B 类中,我们定义了一个 lcm 方法,用于计算两个数的最小公倍数。在 lcm 方法中,我们先调用 a_obj 的 gcd 方法来计算最大公约数,然后再用最大公约数来计算最小公倍数。
下面是一个使用示例:
```python
a = A(24, 36)
b = B(24, 36, a)
print("最大公约数:", a.gcd())
print("最小公倍数:", b.lcm())
```
输出结果为:
```
最大公约数: 12
最小公倍数: 72.0
```
这里我们首先创建了一个 A 类的对象 a,然后用它创建了一个 B 类的对象 b。接着分别调用了 a 的 gcd 方法和 b 的 lcm 方法,最终得到了最大公约数和最小公倍数的结果。
阅读全文