python贪心法:输入一个真分数,编写程序输出其表示为埃及分数之和的形式。如7/8=1/2+1/3+1/24,15/16=1/2+1/3+1/10+1/240,分母和分子分别由键盘分两次输入
时间: 2023-08-28 10:05:10 浏览: 87
py代码-例2-1-2 输入一个整数,输出其绝对值
好的,以下是求解代码:
```python
def egyptian_fraction(numerator, denominator):
fractions = [] # 埃及分数列表
while numerator != 1:
i = denominator // numerator + 1 # 找到最小的分母,使得1/i <= numerator/denominator
fractions.append("1/{}".format(i)) # 将 1/i 加入埃及分数列表
numerator = numerator * i - denominator # 更新分子
denominator = denominator * i # 更新分母
fractions.append("1/{}".format(denominator)) # 最后一个分数为1/denominator
return fractions
numerator = int(input("请输入分子:"))
denominator = int(input("请输入分母:"))
if numerator >= denominator or numerator <= 0 or denominator <= 0:
print("输入有误!")
else:
fractions = egyptian_fraction(numerator, denominator)
print("{}/{} = {}".format(numerator, denominator, " + ".join(fractions)))
```
调用 `egyptian_fraction(numerator, denominator)` 函数可以得到埃及分数列表。调用 `print()` 函数输出结果。例如,输入分子为7,分母为8,输出为 `7/8 = 1/2 + 1/3 + 1/24`。
阅读全文