主题:一个很简单但我却没编出来的问题
&佑慧妹妹&
[专家分:660] 发布于 2007-04-15 09:22:00
将一个数和它的反数相加,和如果是回文数就输出,如不是,将和与和的反数相加,直到等于回文数为止。
如:
59+95=154 145+541=605 605+506=1111——是回文数
有个数,听老师说好象是192在运算几万次后,依然找不到回文数,但不能确定它没有回文和数。
请各位帮帮忙啦~~~~~~~~~~~``
回复列表 (共4个回复)
沙发
Matodied [专家分:7560] 发布于 2007-04-16 18:38:00
楼主,是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
板凳
&佑慧妹妹& [专家分:660] 发布于 2007-04-16 19:04:00
您的子程能简要介绍一下用途吗?
3 楼
Matodied [专家分:7560] 发布于 2007-04-16 22:08:00
子程就是高精度加法
4 楼
&佑慧妹妹& [专家分:660] 发布于 2007-04-17 19:59:00
哦,我知道了,是怕超过精度对吧?
我来回复