c++求解一個五位數裡迴文數的個數
阿新 • • 發佈:2018-12-20
1.問題的重述
編寫一個通用的函式,該函式的功能是判斷一個五位數是否是一個迴文數。所謂迴文數就是一個數字從左邊看和從右邊看是一樣的,例如:35653,這就是一個迴文數,而12345則不是迴文數,即最高位的數字等於最低位的數字,次高位的數字等於次低位的數字。所以五位數裡共有多少個迴文數。
2.問題的分析
根據問題的描述可以得知五位數裡最小的就是10000,最大的就是99999;所以可以通過迴圈遍歷10000到99999的每一個五位數,再判斷即可,如果是則計數器count++,最後輸出count即可求解出來。
3.思路
把五位數的每一位都拆分出來,並用五個變數儲存,然後判斷最高位是否等於最低位,次高位是否等於最低位,如果是則返回1,否則返回0;然後主函式根據返回的情況是否執行count++即可。
原始碼如下:
#include "stdafx.h" #include<iostream> using namespace std; int judge(int n) { int a = n / 10000; int b = (n / 1000) % 10; int c = (n / 100) % 10; int d = (n / 10) % 10; int e = n % 10; if (a == e&&b == d) return 1; else return 0; cout << a << "," << b << "," << c << "," << d << "," << e << endl; return 0; } int main() { int count = 0; for (int i = 10000; i <= 99999; i++) if (judge(i)) count++; cout << "10000-99999裡迴文數一共有:" << count <<"個"<<endl; return 0; }
最後的結果為:900個;
如下圖: