1、指定位数的数字型回文,第一种方法是通过判断每一位数来确定是否是回文,
这种方法不够灵活,如果位数变了,代码就要修改,如下:
"""
打印100到999之间的回文数ABA
"""
#从100开始循环,循环内判断是否符合要求,符合即输出num1 = 100i = 1while num1 <= 999: #获得百位数值 b = num1 // 100 #获得个位数值 g = num1 % 10 #判断百位和个位是否相同 if b == g: print("%d\t" % num1,end="") if i % 10 == 0:#每10位换行输出 print("\n") 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="\t") count1 += 1#控制变量+1 if count1 % 10 == 0:#控制格式输出,每10个数字一行 print("\n") 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") 输出:
原文地址:https://www.cnblogs.com/sunmingduo/p/9903461.html
时间: 2024-11-09 03:00:33