题目描述:
1.程序功能:
随机输入若干个不超过2位的正整数(输入-1表示输入结束),找出其中所有同构数并排序输出。(正整数n若是它平方数的尾部,则称n为同构数。如5的平方数是25,且5是25的尾部,那么5就是一个同构数。同理,25的平方为625,25也是同构数)
2.输入输出要求如下:
输入时要求首先判断输入数位数(1-2位)是否正确,判断输入内容是否是数字,(提示:判断一个字符串是否是数字字符可用字符串的isdigit()方法)然后判断是否是同构数, 输出的同构数要求从小到大排序,结果显示在一行,各同构数间空格分隔。(提示:排序可用列表的sort()方法)
3.程序运行结果要求如下图所示:
(4)程序代码:
def getNum():#输入数字 nums=[] iNumStr=input() while iNumStr !='-1':#输入-1表示输入结束 if(len(iNumStr) in[1,2]):#确保不超过2位的正整数 if(iNumStr.isdigit()):#判断一个字符串是否是数字字符 nums.append(eval(iNumStr))#向数组里面添加输入的数字 iNumStr=input() return nums def tonggou(n):#判断是否为同构数并输出同构数 list=[] for i in n: if(len(str(i))==1):#一位数判断 if(str(i)==(str(i*i))[-1]): list.append(i) if(len(str(i))==2):#两位数判断 if(str(i)==(str(i*i))[-2:]): list.append(i) return list def main(): s=getNum() m=tonggou(s) m.sort()#输出的同构数要求从小到大排序 print("同构数有:",end=' ') for e in m: print(e,end=' ') main()
(5)程序运行效果图: