AdSense

2019年8月8日 星期四

迴文數字演算法

引用出處 https://ithelp.ithome.com.tw/articles/10160654

引用出處 https://leetcode.com/problems/palindrome-number/



迴文數字演算法
迴圈應用
所謂的 Palindrome Number(迴文數字) 就是互相對應的數字,
例如:12321 1357531 9
只要有互相對稱的,就可以判斷成迴文數字。因此,只有一位數的數字,因為本身也是對稱,所以他也算是 Palindrome Number
想法
既然迴文的條件就是要左右對稱,那麼負數就肯定不是迴文了。因為前面多個 負號,後面不可能再放個負號!
所以由此可推論出第一點:「只要是負數,就不是迴文」。
接著,針對數字如果我們想擷取的是第某位數,我們可以利用 mod 10 除以10 甚至 除以10N次方 來達成我們的目的。( mod 10 代表 除以10取餘數)
範例練習
判斷數字1325231 ,則我們為了可以取得左右位數的數字我們可以這麼做:
首先取得輸入數字( 1325231 )的位數,得到 7 位數
接著開始進入迴圈,而迴圈的次數則是 7/2 取整數,所以得到的是 3次。
Loop1:
左邊算來第一位: 1325231 除以 10 (7-1) 次方 得到 1
右邊算來第一位: 1325231 mod 10 得到 1
Loop2:
左邊算來第二位:1325231 除以 10 (7-2) 次方 得到 13, mod 10 得到 3
右邊算來第二位:1325231 mod 100 得到 31, 除以 10 得到 3
Loop3:
左邊算來第三位:1325231 除以 10 (7-3) 次方 得到132, mod 10 得到 2
右邊算來第三位:1325231 mod 1000 得到 231, 除以100 得到 2

沒有留言:

張貼留言