トップページに戻る
次のC++のサンプルへ
前のC++のサンプルへ
Problem4 3桁の数の積で表される回文数のうち最大のもの
問題
左右どちらから読んでも同じ値になる数を回文数という。
2桁の数の積で表される回文数のうち、最大のものは 9009 = 91 × 99 である。
では、3桁の数の積で表される回文数のうち最大のものはいくらになるか。
ソース
#include <iostream>
#include <Windows.h>
void main()
{
int kariMax = 0;
char MaxStr[100];
for (int I = 100; I <= 999; I++) {
for (int J = I; J <= 999; J++) {
int wkInt = I * J;
char ascStr[100];
wsprintf(ascStr,"%d",wkInt);
char descStr[100];
strcpy_s(descStr,ascStr);
_strrev(descStr);
if (strcmp(ascStr,descStr)==0 && kariMax < wkInt){
kariMax = wkInt;
wsprintf(MaxStr,"%d * %d = %d",I,J,wkInt);
}
}
}
std::cout << MaxStr << std::endl;
}
実行結果
913 * 993 = 906609
解説