列印迴文數字&字母
阿新 • • 發佈:2018-11-04
1、指定位數的數字型迴文,第一種方法是通過判斷每一位數來確定是否是迴文,
這種方法不夠靈活,如果位數變了,程式碼就要修改,如下:
"""
列印100到999之間的迴文數ABA
"""
#從100開始迴圈,迴圈內判斷是否符合要求,符合即輸出
num1 = 100
i = 1
while 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")
輸出: