跳转至

回文数

题目描述

回文数是指一个像14641这样“对称”的数,即:将这个数的各位数字按相反的顺序重新排列后,所得到的数和原来的数一样。请编程求不同位数数字的回文数的个数。

用户输入一个正整数M(2<M<7),M作为回文数的位数。要求输出M位的回文数共有几个及这些回文数中有几个包含数字99。

输入描述

输入一个正整数M

输出描述

第一行输出回文数的个数;第二行输出M位的回文数中包含数字99的有几个。

样例输入

3

样例输出

90

1

代码详解


展开查看

M = int(input())

max = 10**M -1
min = 10**(M-1)

count = 0
count2 = 0

for i in range (min, max+1):
    ls = list(str(i))
    for j in range(len(ls)):
        if ls[j] == ls[M-1-j]:
            pass
        else:
            break
    else:
        count += 1
        num = str(i)
        if '99' in num:
            count2 += 1
print(count)
print(count2)

运行结果

展开查看
6
900
99