回 帖 发 新 帖 刷新版面

主题:一个很简单但我却没编出来的问题

将一个数和它的反数相加,和如果是回文数就输出,如不是,将和与和的反数相加,直到等于回文数为止。
如:
59+95=154 145+541=605 605+506=1111——是回文数
有个数,听老师说好象是192在运算几万次后,依然找不到回文数,但不能确定它没有回文和数。
请各位帮帮忙啦~~~~~~~~~~~``

回复列表 (共4个回复)

沙发

楼主,是196,不是192!

CLS
INPUT a$
1 la=LEN(a$)
b$=""
FOR i=la TO 1 STEP -1
    b$=b$+MID$(a$,i,1)
NEXT i
GOSUB gjdadd
c$="":d$=""
FOR i=ls TO 1 STEP -1
    c$=c$+RTRIM$(LTRIM$(STR$(s(i))))
    d$=d$+RTRIM$(LTRIM$(STR$(s(ls+1-i))))
NEXT i
PRINT a$;"+";b$;"=";c$
IF c$=d$ THEN END
a$=c$:GOTO 1
END
gjdadd:
la=LEN(a$):lb=LEN(b$)
IF la>lb THEN l=la ELSE l=lb
REDIM a(l),b(l),s(l+1)
FOR i=1 TO la:a(i)=VAL(MID$(a$,la+1-i,1)):NEXT i
FOR i=1 TO lb:b(i)=VAL(MID$(b$,lb+1-i,1)):NEXT i
FOR i=1 TO l
    s(i)=s(i)+a(i)+b(i)
    IF s(i)>=10 THEN s(i)=s(i)-10:s(i+1)=s(i+1)+1
NEXT i
IF s(l+1)=0 THEN ls=l ELSE ls=l+1
RETURN

板凳

您的子程能简要介绍一下用途吗?

3 楼

子程就是高精度加法

4 楼

哦,我知道了,是怕超过精度对吧?

我来回复

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