主题:一道QBASIC题!
Dannysss
[专家分:0] 发布于 2007-04-21 14:25:00
五人分椰子,第一个人把一堆分成五份,藏起一份,刚好剩下一个。其它人也如法炮制。第二天,五人把藏起来的椰子集中起来,又分成五份,刚好还剩下一个。请问一共有多少椰子?
注:藏起来的那一份不算在五份之内。
最后更新于:2007-05-07 00:46:00
回复列表 (共11个回复)
沙发
Matodied [专家分:7560] 发布于 2007-04-21 20:20:00
CLS
DO
i = i + 1: i0 = i: s = 0
IF i0 MOD 5 = 1 THEN
s = s + i0 \ 5: i0 = i0 \ 5 * 4
IF i0 MOD 5 = 1 THEN
s = s + i0 \ 5: i0 = i0 \ 5 * 4
IF i0 MOD 5 = 1 THEN
s = s + i0 \ 5: i0 = i0 \ 5 * 4
IF i0 MOD 5 = 1 THEN
s = s + i0 \ 5: i0 = i0 \ 5 * 4
IF i0 MOD 5 = 1 THEN
s = s + i0 \ 5: i0 = i0 \ 5 * 4
IF s MOD 5 = 1 THEN PRINT i: END
END IF
END IF
END IF
END IF
END IF
LOOP
END
板凳
&佑慧妹妹& [专家分:660] 发布于 2007-04-21 20:38:00
DIM a(3)
y1 = 3
1 y = y1
x = 0
FOR i = 1 TO 3
x = y / 2 + 1 / 2
IF ABS(x - INT(x)) <> 0 THEN 2
a(i) = x: y = y - x
NEXT i
PRINT a(1), a(2), a(3)
END
2 : y1 = y1 + 1
GOTO 1
3 楼
&佑慧妹妹& [专家分:660] 发布于 2007-04-21 20:39:00
n = 3
DO
n = n + 1
a = n / 2 + .5: b = (n - a) / 2 + .5: c = (n - a - b) / 2 + .5
LOOP WHILE a <> FIX(a) OR b <> FIX(b) OR c <> FIX(c)
PRINT a, b, c
END
4 楼
&佑慧妹妹& [专家分:660] 发布于 2007-04-21 20:39:00
n = 0
1 n = n + 1
a = n / 2 + .5: b = n - a
IF a <> FIX(a) THEN 1
b = b / 2 + .5: c = n - a - b
IF b <> FIX(b) THEN 1
c = c / 2 + .5
IF c <> FIX(c) THEN 1
PRINT a, b, c: END
5 楼
&佑慧妹妹& [专家分:660] 发布于 2007-04-21 20:39:00
三种方法你随便选哪种,看哪种好理解
6 楼
Dannysss [专家分:0] 发布于 2007-05-06 03:27:00
这道题有点难度,希望可以好好分析题意。五个人分五次,每次各藏一堆,余一个。藏多少个是未知数,每次分的也是未知数,只有次数和余数是已知数。分析一下该题一共有十个末知数。两位可否把运行结果贴一下,对照一下看看对不对。谢谢两位的程序。
7 楼
老大徒伤悲 [专家分:29120] 发布于 2007-05-06 19:07:00
这类题选用递归算法,可能是不错的选择。
8 楼
Dannysss [专家分:0] 发布于 2007-05-06 23:59:00
我计算的结果是20136006,大家看看对不对。
9 楼
moz [专家分:37620] 发布于 2007-05-07 00:38:00
时间 总数 分成五份,每份多少个 剩下多少个 算式
第1天 3121 624 624x4=2496 624*5+1=3121
第2天 2496 499 499*4=1996 499*5+1=2496
第3天 1996 399 399*4=1596 399*5+1=1996
第4天 1596 319 319*4=1276 319*5+1=1596
第5天 1276 255 255*4=1020 255*5+1=1276
最后 1020 +624+499+399+319+255=(3121-5)=3116 3116 mod 5=1
10 楼
Matodied [专家分:7560] 发布于 2007-05-07 14:40:00
实际上根本不用一个一个循环,也不用用这么多IF.
CLS
i=1
DO
i=i+5
s=i
FOR j=1 TO 5
IF s MOD 5<>1 THEN EXIT FOR
s=(s-1)/5*4
NEXT j
LOOP UNTIL j=6
PRINT i
END
运行结果:3121
我来回复