1. 程式人生 > >判斷迴文數的函式--c的實現

判斷迴文數的函式--c的實現

  • 所謂迴文數,即palindrome ,指從前向後讀或者從後向前讀數的大小不發生改變的數,比如121、34543這些,在這個演算法中,傳入一個long型別的引數m,然後把m的值賦給i,當i非零時執行while語句,while語句內部功能是將一個長整形數i轉化成這個i從右往左重新排列組成的“倒過來的數”,再把這個倒過來的數和原來的m進行比較就實現了判斷是否是迴文數的功能。
  • 為了更好的理解while內的程式,先讓我們簡單理解一下:一個數對十取模,得到的數就是它的個位數(比如1886%10=6),一個整形資料除以十得到的數就是它去掉個位數之後組成的比原來少一位數的數(比如1886/10=188)。
  • 在這個程式中我們不斷把一個長整形資料的個位數分離出來,並把原長整形數從右向左逐漸減少位數,再經過n=n*10+i%10這句程式,就可以得出一個長整形數的“倒過來的數”,例如1886,進入while之前,i=1886,n=0。第一遍進入while,n=6,i=188;滿足while條件,第二遍:n=68,i=18;第三遍:n=688,i=1;第四遍:n=6881,i=0;跳出while語句,此時發現6881!=1886,判斷得出m不是迴文數,返回值為0,實現了判斷迴文數的功能;