回 帖 发 新 帖 刷新版面

主题:请教moz!!行行好,帮帮忙吧!!!!

密码:1 2 3 4 5 6 7 8 9
在空格处填入适当的'+'或'-'使得数等于输入的X
例如:X=182
     123+45+6+7-8+9
输入X后,打印所有的可能性!

回复列表 (共27个回复)

21 楼

没问题!!

22 楼

MOZ这个程序编的很完美了,不过不好意思,我还想说一句,好象输出的结果不全吧,1-2+3-4+5-6+7-8+9=5。输入5输出的好象没有这个式子。

23 楼

哦,是的,你提醒的是,是因为我原本就没考虑负数带头.加一行就可以了.

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 楼

但我又发现了 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 楼

用八重循环,即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 楼

用8重循环,然后分离计算.

27 楼

你们不嫌麻烦吗?也该给计算机想想吧!运行那么多次!!还是递归方便!既简单又容易!
八重循环??????
晕晕晕!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册