回文数之一(大概)
若一個數(首位不為0)從左到右讀與從右到左讀都是一樣,這個數就叫做回文數,例如12521就是一個回文數。
給定一個正整數,把它的每一個位上的數字倒過來排列組成一個新數,然后與原數相加,如果是回文數則停止,如果不是,則重復這個操作,直到和為回文數為止。給定的數本身不為回文數。
例如:87則有:
STEP1: 87+78=165
STEP2: 165+561=726
STEP3: 726+627=1353
STEP4: 1353+3531=4884
現在給你一個正整數M(12 <= M <= 100),輸出最少經過幾步可以得到回文數。如果在8步以內(含8步)不可能得到回文數,則輸出0。
例如:M=87,則輸出4.
好了超簡單的一個題。。。
沒有啥優化的,我就直接寫了。
用字符串類型比較,來回轉換類型。。。 # -*- coding: UTF-8 -*- M = 87 str1 = '' str1 = str(M) i, f = 1, 1 while i <= 8:N = int(str1) + int(str1[::-1])#把字符轉成整形相加str0 = str(N)if str0[:len(str0)+1] == str0[len(str0)::-1]:#直接切片比較是否相同print if = 0breakelse:i += 1str1 = str0 if f == 1:print '0'
好了超簡單的一個題。。。
沒有啥優化的,我就直接寫了。
用字符串類型比較,來回轉換類型。。。 # -*- coding: UTF-8 -*- M = 87 str1 = '' str1 = str(M) i, f = 1, 1 while i <= 8:N = int(str1) + int(str1[::-1])#把字符轉成整形相加str0 = str(N)if str0[:len(str0)+1] == str0[len(str0)::-1]:#直接切片比較是否相同print if = 0breakelse:i += 1str1 = str0 if f == 1:print '0'
?
轉載于:https://www.cnblogs.com/webgavin/p/5329728.html
總結
- 上一篇: 【第四周作业】参加项目开发之后的一些体会
- 下一篇: 需求更大的--if条件判断