トップページに戻る
次の増井さんの書籍の問題へ
Q01 10進数で回文
C#のソース
using System;
using System.Linq;
class Program
{
static void Main()
{
//偶数は、2進数で1の位が0なので、検証しない
for (int I = 11; I < int.MaxValue; I += 2) {
string DecStr = I.ToString();
string OctStr = Convert.ToString(I, 8);
string BinStr = Convert.ToString(I, 2);
//回文かを判定
Predicate<string> IsKaibun =
pStr => pStr == new string(pStr.Reverse().ToArray());
if (IsKaibun(DecStr) == false) continue;
if (IsKaibun(OctStr) == false) continue;
if (IsKaibun(BinStr) == false) continue;
Console.WriteLine("解を発見");
Console.WriteLine("10進数で{0}。8進数で{1}。2進数で{2}",
DecStr, OctStr, BinStr);
break;
}
}
}
実行結果
解を発見
10進数で585。8進数で1111。2進数で1001001001
解説
小さい数から順に検証してます。