1. 程式人生 > >c++求解一個五位數裡迴文數的個數

c++求解一個五位數裡迴文數的個數

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個;

如下圖: