Python求回文数

Posted 小星唷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python求回文数相关的知识,希望对你有一定的参考价值。

首先,我们求回文数,那就应该要先明白,怎么样的数才是回文数。

我们来看看百度百科是怎样解释的:

简单来说,回文数就是正着读和反着读都是一样的,比如101,202等。

搞清楚什么是回文数了,那我们如何用Python来验证回文数呢?

因为回文数是反着读和正着读都是一样的,所以我们把一个整数倒过来,然后再对比之前的数不就知道是否是回文数了吗

搞清楚这一点,那我们就开始吧

1、用for循环和while循环求100到10000回文数

首先我们先用for循环把100到10000的数遍历一遍,然后再用while循环对遍历出来的数进行判断:

for i in range(100, 10001):  #range(start,end,scan) 这个函数能产生一组list,因为不包含end,所以写的10001
    x = i   #把最开始的值保存下来,跟反转过来的数进行对比
    sum = 0
    while(i):
        sum = sum * 10 + i % 10  #反转整数位
        i //= 10      #这里小数点往左移一位并去掉小数部分
    if sum == x:
        print(str(x) + "是回文数")   #输出回文数

这一个方法是比较麻烦的,我们换另外一种简单的方法

2、直接把整数变为字符串进行反转,然后比较是否相同

for i in range(100, 10001):
    if str(i) == str(i)[::-1]:	#str[::-1]直接反转字符串
        print(str(i) + "是回文数")

这个方法是不是特别简单,学会了吗?

学会了那就赶快去试试吧,可以改一下代码,实现让我们输入一个数,然后判断是否是回文数哦

小学生蓝桥杯Python闯关 | 回文数

学习Python从娃娃抓起!记录下蓝桥杯Python学习和备考过程中的题目,记录每一个瞬间。

附上汇总贴:小学生蓝桥杯Python闯关 | 汇总_COCOgsta的博客-CSDN博客


【题目描述】

回文数是指一个像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

以上是关于Python求回文数的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何求回文数

如何用Python编写一个判断回文数

LeetCode刷题09-简单 回文数 python语言

LeetCode刷题09-简单 回文数 python语言

小学生蓝桥杯Python闯关 | 回文数

C语言试题七十五之请编写函数求回文数