Python識別同構數

題目描述:

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)程序運行效果圖:
在這裏插入圖片描述

感謝大家一大早的祝福,又老了一歲哈,不過還是一如既往地積極向上、樂觀開朗,在接下來的日子裏也會更加珍惜時光,用心去享受生活。希望大家能一直像小孩子一樣無憂無慮,兒童節快樂! 永遠屬於我們的節日!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章