问题:
日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完 后父亲说:
“老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先的桔子分1/6给老四;
老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同原先的桔子分1/4给老六;老六拿到后连同原先的桔子分1/3给老大”。
结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?
n 表示第几个儿子
beforenum 表示分配之前的橘子数
afternum 表示分配之后的橘子数
m 表示分配的比例
'''
def orange(n, beforenum, afternum, m):
if n > 6:
return 0
else:
print("老" + str(n) + "原有橘子数" + str(beforenum) + "个")
# 分给下一个人的橘子数
givenum = afternum / m
# 下一个人的橘子数
nextbeforenum = 420 * (m - 1) / (m - 2) - givenum
# 下一人加上之前的橘子数的总数
aftergetnum = nextbeforenum + givenum
return orange(n + 1, nextbeforenum, aftergetnum, m - 1)
orange(1, 240, 240, 8)