程序地带

zzulioj 1107: 回文数猜想(函数专题)Python


题目描述

一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数。于是有数学家提出一个猜想:不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数。至今为止还不知道这个猜想是对还是错。现在请你编程序验证之。你已经会写求一个整数的逆序数的函数inverse(),那么如下循环可以模拟回文数猜想的验证过程: while( m = inverse(n), m != n) { 输出n; 把n更新为 m + n; }


输入

输入一个正整数。特别说明:输入的数据保证中间结果小于2^31。


输出

输出占一行,变换的过程中得到的数值,两个数之间用空格隔开。


样例输入

27228


样例输出

27228 109500 115401 219912


代码如下
# inverse()函数用来求K的逆序数字
def inverse(k):
s = str(k)
string = ''
for i in reversed(s):
string += i
return string
# reg()函数用来判断是否是回文数
def reg(i):
if str(i) == inverse(i):
return 1
else:
return 0
m = int(input())
while reg(m) != 1:
print(m, end=" ")
m = m + int(inverse(m))
print(m)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46423830/article/details/112689115

随机推荐

Netty中粘包和拆包的解决方案

Netty中粘包和拆包的解决方案

粘包和拆包是TCP网络编程中不可避免的,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。1. TCP粘包和拆包TC...

fedorafrog 阅读(860)

开发中常用类扩展

源码UILabel设置字体和颜色///设置Label属性///-Parameters:///-text:文本内容///-font:字体///-color:字体颜色publicfunccxg_setAt...

CuiXg 阅读(865)

js校验sql合法性_让你彻底明白 SQL 注入攻击

js校验sql合法性_让你彻底明白 SQL 注入攻击

(给数据分析与开发加星标,提升数据技能)来源:Java旅途SQL注入攻击是黑客对数据库进行攻击常用的手段之一,随着B/S模式应用开发的发展,使用...

weixin_39722965 阅读(918)