回 帖 发 新 帖 刷新版面

主题:请编:输入k,p。要求当K分成不大于p个数字之和当中,统计出现回文的等式和个数

请编:输入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 楼

我不叫小Ma,我的英文名就是Mato(Matody),把它变成过去式就是Matodied了.

12 楼

你如果实在用不了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 楼


再次感谢!我已经用子程序修改了。

我来回复

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