主题:请教moz!!行行好,帮帮忙吧!!!!
纯情鸭鸭
[专家分:30] 发布于 2007-07-21 13:34:00
密码:1 2 3 4 5 6 7 8 9
在空格处填入适当的'+'或'-'使得数等于输入的X
例如:X=182
123+45+6+7-8+9
输入X后,打印所有的可能性!
回复列表 (共27个回复)
21 楼
纯情鸭鸭 [专家分:30] 发布于 2007-07-24 16:52:00
没问题!!
22 楼
强强 [专家分:4740] 发布于 2007-07-24 17:35:00
MOZ这个程序编的很完美了,不过不好意思,我还想说一句,好象输出的结果不全吧,1-2+3-4+5-6+7-8+9=5。输入5输出的好象没有这个式子。
23 楼
moz [专家分:37620] 发布于 2007-07-24 19:34:00
哦,是的,你提醒的是,是因为我原本就没考虑负数带头.加一行就可以了.
FUNCTION XXX (s$)
DO
a = VAL(s$)
c = LEN(STR$(a))
[color=ff00ff] IF a < 0 THEN c = c + 1[/color]
b = VAL(MID$(s$, c + 1))
d = LEN(STR$(b))
24 楼
moz [专家分:37620] 发布于 2007-07-24 19:51:00
但我又发现了 XXX("123456789")=0
想想还是把 XXX( ) 函数再改一下:
[color=ff]
FUNCTION XXX (s$)
s$ = "+" + s$
DO
a = VAL(s$)
e = e + a
s$ = MID$(s$, LEN(STR$(a)) + 1)
LOOP WHILE a
XXX = e
END FUNCTION [/color]
25 楼
麒麟23 [专家分:80] 发布于 2007-07-26 09:13:00
用八重循环,即a(1)-----a(8),它们为符号:
for a1=-1 to 1 ' -1 为减,0为没有,1为加.
a(1)=a1
for a2=-1 to 1
a(2)=a1
......
接下来组成字符,如1+2+345+6+7+89
然后分离计算.
26 楼
麒麟23 [专家分:80] 发布于 2007-07-26 09:15:00
用8重循环,然后分离计算.
27 楼
Lovely哆啦 [专家分:1360] 发布于 2007-07-26 09:24:00
你们不嫌麻烦吗?也该给计算机想想吧!运行那么多次!!还是递归方便!既简单又容易!
八重循环??????
晕晕晕!!!!!
我来回复