题目:
找出五位数中的回文数,打印并计算个数。
思路:
回文数是对称数,指正向读与反向读是相同的,如12321,33433等。
因此可以利用正向与反向相同或对称位数字相同来判断。
解法1:
利用字符串反转,判断反转前后是否相等
count = 0
for num in range(10000, 99999):
if str(num) == str(num)[::-1]: #str[::-1]表示字符串反转
print(num)
count += 1
print("共有%d个5位回文数" %(count))
解法2:
利用列表判断对称位相等
count = 0 #计数器
for num in range(10000, 99999):
numList = list(str(num))
if numList[0] == numList[4] and numList[1] == numList[3]:
count += 1
print(num)
print("共有%d个5位回文数" %(count))
解法3:
利用列表逆向存储,判断逆向前后两个列表是否相等
count = 0
for num in range(10000, 99999):
numList = list(str(num)) #原数值列表
tmpList = list(str(num)) #逆向存储后的列表
tmpList.reverse() #reverse()方法进行逆向存储
if numList == tmpList:
print(num)
count += 1
print("共有%d个5位回文数" %(count))
运行结果:
**
- 题目练习,尚在学习,若有问题请指出。
**