點選上方 藍字關注我們
大家好,我是阿湯哥,前兩天在背景收到一個朋友問回文數,今天我們就來談談怎麼用C語言程式設計判斷一個數是不是回文數。 怎麼判斷回文數? 首先看定義,什麼是回文數。
回文數 定義
設n是一任意自然數。若将n的各位數字反向排列所得自然數n1與n相等,則稱n為一回文數。例如,若n=1234321,則稱n為一回文數;但若n=1234567,則n不是回文數。 注意: 1.偶數個的數字也有回文數124421 2.小數沒有回文數
怎麼判斷一個數是不是回文數?這裡運用這樣的方法:把一個數反着排列一遍,如果和原先的數相同,那麼就是回文數。這裡難點在于如何把一個數反着排列。比如一個數 s = 12345,怎麼把這個數反着排?
設s反着排列的數為m,我們使用下面方法來生成m:
把數 s 反着排
1、取出s(12345)末尾數n(5)放到m(0)的末位(初始為0)。這步結束後:m = 5,s = 1234 2、取出s(1234)末尾數n(4)放到m(5)的末位。這步結束後:m = 54,s = 123 3、取出s(123)末尾數n(3)放到m(54)的末位。這步結束後:m = 543,s = 124 4、取出s(12)末尾數n(2)放到m(543)的末位。這步結束後:m = 5432,s = 1 5、取出s(1)末尾數n(3)放到m(5432)的末位。這步結束後:m = 54321,s = 0 。6、s = 0,過程結束。
是以簡單來說,就是循環地把s末位數放到m的末位,直到s等于0為止。
那麼怎麼求一個數末位數?用求餘方法,對10求餘。比如12345的末位數=12345%10=5。
怎麼把一個數字a放到一個數字m的末尾?m*10+a就可以。比如m=0,a=5時, m*10+a = 0*10+5 =5。
完整C語言代碼如下:C語言代碼
/**
* Author: 阿湯哥
* 微信公衆号:C語言修仙
*/
運作結果 輸入:12345
輸入123454321
往期推薦好文
★C語言程式設計工具的選擇 ★看完你就明白:什麼情況下該用int main(int argc, char *argv[])而不是int main(void) ★C語言程式設計:列印一個圓形 ★福利:50本C語言電子書免費送了! ★C語言程式設計求解:1到1000之間所有的素數
點個在看 你最好看