注册 登录
编程论坛 程序供求

【新手求教】虽然上一道题没有解决【各位 不吝赐教】

打死黑狗! 发布于 2012-12-30 10:52, 640 次点击
    有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。    等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”    请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。    如果有多个可能的答案,请列出所有答案,每个答案占一行。    格式是:人数,人数,...    例如,有一种可能是:20,5,4,2,0

题目就是求1/a+1/b+1/c+1/d=1 那么这个组合如何求呢
1 回复
#2
cat0022013-04-25 22:16
设这群海盗的人数为n,
1.n不可能为质数
2.不可能为奇数
3.1/a+1/b+1/c=n-1/n;a,b,c必定在集合{n和n的约数}中;则可写成1/x+1/y+1/z=n-1/n
  x,y,z在集合{1和n的约数中};因为x+y+z=n-1,所以x,y,z中必定是一个正两个负或三个 负,此外如果m的最大约-1大于m的第二第三约数的和,那么m也不可能为海盗的人数。
所以答案有:
4,4,4,4
6,6,3,3
8,8,4,2
12,12,3,2,_12,6,4,2,_12,4,3,3
18,9,3,2
20,5,4,2
1