回 帖 发 新 帖 刷新版面

主题:求同构数的个数我的方法

所谓同构数是指这样的数,即它出现在它的平方数的右端。例如,5的平方是25,5是25右端的数,那么5就是同构数。又如,25的平方是625,同理25也是同构数。找出通过键盘输入的两个正整数N和M(0<N<M≤10000)之间同构数的个数。
输入:任意给定的两个正整数N、M(0<N<M≤10000)
输出:一个正整数,表示[N,M]之间同构数的个数。
【输入格式】键盘输入,无需做数据的合法性检验。
【输出格式】输出到屏幕。
【输入输出样例】
输入:4,10
输出:2

我的方法:

CLS
INPUT n, m
p = 0
FOR i = n TO m
 a = i * i: h$ = LTRIM$(STR$(a)): b$ = LTRIM$(STR$(i))
 IF RIGHT$(h$, LEN(LTRIM$(b$))) = LTRIM$(b$) THEN p = p + 1
NEXT i
PRINT LTRIM$(STR$(p));
END


我的方法并非最简,希望大家发一下你们的方式,互相学习学习。

回复列表 (共2个回复)

沙发

啊!后悔呀!原来这题如此简单!这么多人都做出来了!啊…………太丢人了。

板凳

Cls
Input n, m
For i = n To m 
  l = Len(Ltrim$(Str$(n))): la = Len(Ltrim$(Str$(n * n)))
  If Right$(Rtrim$(Str$(n * n))), l) = Ltrim$(Str$(i)) Then s = s + 1
Next i: Print s;
End

我来回复

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