主题:请编:输入k,p。要求当K分成不大于p个数字之和当中,统计出现回文的等式和个数
zgk
[专家分:50] 发布于 2007-05-08 08:41:00
请编:输入k,p。要求当K分成不大于p个数字之和当中,即K=K1+K2+K3+...+KP。统计出现回文的等式和个数。
例如:输入4,4(即把4分成最多4份时,可能出现的类似回文的数字之和)
4=4 (回文)
=3+1
=2+2 (回文)
=1+3
=1+2+1 (回文)
=2+1+1
=1+1+1+1 (回文)
输出
4=4 (回文)
=2+2 (回文)
=1+2+1 (回文)
=1+1+1+1 (回文)
回文数: 4
回复列表 (共13个回复)
11 楼
Matodied [专家分:7560] 发布于 2007-05-10 21:44:00
我不叫小Ma,我的英文名就是Mato(Matody),把它变成过去式就是Matodied了.
12 楼
Matodied [专家分:7560] 发布于 2007-05-11 19:12:00
你如果实在用不了SUB,只能用子程序了,程序如下:
CLS
INPUT n
DIM a(n)
total = 0: t = 1: s = 0
DO
a(t) = a(t) + 1: s = s + a(t)
IF s >= n THEN
IF s = n THEN GOSUB pdhw
s = s - a(t): t = t - 1: s = s - a(t)
ELSE
t = t + 1: a(t) = 0
END IF
LOOP UNTIL t = 0
PRINT "Total:", total
END
pdhw:
f = 1
FOR i = 1 TO INT(t / 2)
IF a(i) <> a(t + 1 - i) THEN f = 0: EXIT FOR
NEXT i
IF f = 1 THEN
total = total + 1
FOR i = 1 TO t - 1
PRINT a(i); "+";
NEXT i: PRINT a(t)
END IF
RETURN
13 楼
zgk [专家分:50] 发布于 2007-05-13 08:57:00
再次感谢!我已经用子程序修改了。
我来回复