Python 迴文數(Palindromic number)

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

根據的維基百科說明:
迴文數回文數是指一個像14641這樣「對稱」的,即:將這個數的數字按相反的順序重新排列後,所得到的數和原來的數一樣。這裡,「回文」是指像「媽媽愛我,我愛媽媽」這樣的,正讀反讀都相同的單詞或句子。

方法一,用迴圈拆解數字:


方法二,用字串來解:


Python程式碼:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 方法一
while True:
    try:
        n = int(input())

        # 小於零,或是個位數為零都不會是迴文
        if( n < 0 or (n % 10 == 0 and n != 0)):
            print("不是回文數")
        else:
            # 翻轉後的數字
            rNum = 0
            while(n > rNum):
                rNum = rNum * 10 + n % 10
                n = n // 10

            if(n == rNum or n == rNum // 10):
                print("是回文數")
            else:
                print("不是回文數")

    except EOFError:
        break


# 方法二
while True:
    try:
        n = input()
        length = len(n)
        m = length / 2
        i = 0

        yes = True
        while(i <= m):
            if( n[i] != n[length - i - 1] ):
                yes = False
                break
            i = i + 1

        if yes == True:
            print("是回文數")
        else:
            print("不是回文數")

    except EOFError:
        break

沒有留言: