主题:分橘子的问题
designer2007
[专家分:0] 发布于 2007-08-23 19:28:00
请问各位高手这道题目如何用pascal实现?
有一堆橘子给某单位,每人分A个余下A-1个;每人分A+1个余下A个;每人分A+2个余下A+1个;这堆里至少有多少橘子?
[em8]
回复列表 (共11个回复)
沙发
Matodied [专家分:7560] 发布于 2007-08-23 20:45:00
a * (a + 1) * (a + 2) - 1(如果a是偶数就是(a * (a + 1) * (a + 2)) / 2 - 1)。
分析:如果再加一个橘子,就能正好让每人分a个、a + 1个、a + 2个都正好分完。那么所要找的结果就是a、a + 1、a + 2的最小公倍数减1。(由于a、a + 1、a + 2中不可能有两个数有2以上的公因数,所以如果a是偶数就把结果除以2)
板凳
Matodied [专家分:7560] 发布于 2007-08-23 21:21:00
VAR
a, o: INTEGER;
BEGIN
READLN(a);
o := a * (a + 1) * (a + 2);
IF NOT(ODD(a)) THEN o := o DIV 2;
o := o - 1;
WRITELN('Orange = ', o);
END.
3 楼
designer2007 [专家分:0] 发布于 2007-08-23 23:57:00
非常感谢Matodied的帮忙,可是我觉得题目不是这个意思,而是说如果每个人都分到A个橘子的话,还剩下A-1个,如果每个人都分到A+1个橘子的话还剩下A个,如果每个人都分到A+2个橘子的话还剩下A+1个
4 楼
Matodied [专家分:7560] 发布于 2007-08-24 13:49:00
怎么不是我的意思?
我首先问你,如果每人分到a个橘子,剩下a - 1个,那么我再给你一个橘子,是不是就没有剩余了?同样,如果每人分到a + 1个,剩下a个,以及每人分到a + 2个,剩下a + 1个,那么我再给你一个,是不是没有剩余了?
比如:输入 a = 5,输出 209
现在有209个橘子,再给你一个,就是210个,那么每人分5、6、7个都正好分完,所以210是5、6、7的最小公倍数。再试一下209,每人分5个,可以分给41个人,还剩4个;每人分6个,可以分给34个人,还剩5个;每人分7个,可以分给29个人,还剩6个。正好符合你的所有条件。
5 楼
designer2007 [专家分:0] 发布于 2007-08-24 16:27:00
这样的话,每次的人数不是不一样了吗?分别为41 34 29了,题目要求每次人数是不变的吧?
6 楼
Matodied [专家分:7560] 发布于 2007-08-24 19:33:00
如果人数不变那么橘子的数量一定要变。
7 楼
fly100 [专家分:50] 发布于 2007-08-24 19:49:00
是啊,人数怎么可能不边呢?
假如不变,我们设人数为X,那么
X*A+A-1=X*(A+1)+A=X*(A+2)+A+1;
这怎么可能成立呢!
8 楼
designer2007 [专家分:0] 发布于 2007-08-24 20:08:00
对啊!我怎么没发现啊,这种情况是不可能成立的啊
[em10]
9 楼
syg558 [专家分:30] 发布于 2007-08-24 20:17:00
橘子和人数都是一定的
设橘子数y 人数x
方程组是:
y-Ax=A-1
y-(A+1)x=A
y-(A+2)x=A+1
10 楼
syg558 [专家分:30] 发布于 2007-08-24 20:20:00
而上边的 方程组是没有解的 !!这个题有问题
我来回复