打印回文数字&字母

Posted sunmingduo

tags:

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

1、指定位数的数字型回文,第一种方法是通过判断每一位数来确定是否是回文,

这种方法不够灵活,如果位数变了,代码就要修改,如下:

"""
打印100到999之间的回文数ABA
"""

#从100开始循环,循环内判断是否符合要求,符合即输出
num1 = 100
i = 1
while num1 <= 999:
#获得百位数值
b = num1 // 100
#获得个位数值
g = num1 % 10
#判断百位和个位是否相同
if b == g:
print("%d " % num1,end="")
if i % 10 == 0:#每10位换行输出
print(" ")
i += 1
num1 += 1

输出(部分截图):

技术分享图片

 

2、第二种方法是将数字转为字符串,对单个字符比较是否相同,少了一些算法,多了一点灵活性,代码如下:

"""打印回文数通用增强版"""


def num_aba(n):
count1 = 0#控制输出格式,不参与算法
for num0 in range(1,n):
i = 0#定义循环变量
flag = True#定义逻辑运算变量
while i < len(str(num0))//2:#对每一个数字判断是否符合要求
if str(num0)[i] == str(num0)[-i-1]:
flag = flag and True#符合返回True
else:
flag = False#不符合返回False
break
i += 1
if flag == True:#判断结果如果是True,则是回文数,打印
print(num0,end=" ")
count1 += 1#控制变量+1
if count1 % 10 == 0:#控制格式输出,每10个数字一行
print(" ")


num_aba(100000)

输出(部分截图):

技术分享图片

 

3、打印字母回文

我用的方法是把字符转换为ASCII码进行运算输出

 

def alp_ABA(N):
for i in range(ord("A"),ord("%s" % N)+1):
for j in range(ord("A"),i + 1):
print(chr(j),end="")
for k in range(j-1,ord("A")-1,-1):
print(chr(k),end="")
print()

alp_ABA("U")

输出:

技术分享图片

 















































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

输入一个字符串,判断其是不是是C的合法标识符。用c语言编写程序。

验证回文串(LeetCode)Java&C++

验证回文串(LeetCode)Java&C++

PAT A1019 General Palindromic Number (20) [回?数 进制转换]

验证回文字符串

回文数字