主题:[讨论]这道题我想了好久哦,希望各位高手前来指点一下。
nhjane
[专家分:30] 发布于 2005-06-04 11:21:00
找出1~1000之间的全部同构数。所谓同构数就是指这样的数,它出现在它的平方数的右端。例如:5的平方是25,5是25右端的数,5就是同构数。同理,25的平方是625,25也是一个同构数。
我是这样编的,怎么看都没问题呀,但就是不行,请各位高手指导指导。
CLS
FOR I = 1 TO 1000
L=LEN(I)
S=I^2
I$=STR$(I)
S$=STR$(S)
IF I$=RIGHT$(S$,L) THEN PRINT I;
NEXT I
END
回复列表 (共6个回复)
沙发
飞鸟12 [专家分:2830] 发布于 2005-06-04 11:57:00
分三段考虑
1-9 IF i^2 mod 10 = i THEN PRINT i
10-99 IF i^2 mod 100 = i THEN PRINT i
100-999 IF i^2 mod 1000 = i THEN PRINT i
板凳
nhjane [专家分:30] 发布于 2005-06-04 13:35:00
多谢,真容易理解,[em16]
3 楼
88324837 [专家分:490] 发布于 2005-06-04 16:24:00
请问1是不是同构数啊
4 楼
nhjane [专家分:30] 发布于 2005-06-05 16:56:00
应该是吧[em2]
5 楼
QB71 [专家分:1300] 发布于 2005-06-08 01:53:00
CLS
CONST M% = 1000
N% = INT(SQR(M%))
FOR i% = 1 TO N%
a$ = LTRIM$(STR$(i%))
b$ = RIGHT$(LTRIM$(STR$(i%*i%)), LEN(a$))
IF a$ = b$ THEN PRINT i%
NEXT
6 楼
nhjane [专家分:30] 发布于 2005-06-08 21:45:00
多谢!
我来回复