找自守数 找出1000以内的自守数。自守数的平方的尾数部分就是该数本身。如5、6、25、76等

找自守数 找出1000以内的自守数。自守数的平方的尾数部分就是该数本身。如5、6、25、76等 思路:即判断一个数的平方的尾数部分是否等于该数。因选取尾数的位数有所不同,故先要判断这个数是一个几位数?

不用判断几位数,从1开始循环到1000就行了,然后在循环体内计算每个数的平方,然后从平方数个位开始,依次和原数比较,如果匹配则退出循环。

我用python 实现了一下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#判断一个数末尾是否等于另外一个数
def hasNumEnd(j,i):
    s = str(j)
    num = ''
    for k in range(len(s)-1,-1,-1):
        num = s[k] + num
        if(int(num) == i):
            return True
    else:
        return False

if __name__ == '__main__':
    for i in range(1,1000):
        j = pow(i,2)
        if(hasNumEnd(j,i)):
            print i