找自守数
找出1000以内的自守数。自守数的平方的尾数部分就是该数本身。如5、6、25、76等
思路:即判断一个数的平方的尾数部分是否等于该数。因选取尾数的位数有所不同,故先要判断这个数是一个几位数?
1条回答 默认 最新
CSDN专家-lynn 2021-04-27 00:08关注不用判断几位数,从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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1