トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem4 3桁の数の積で表される回文数のうち最大のもの

問題

左右どちらから読んでも同じ値になる数を回文数という。
2桁の数の積で表される回文数のうち、最大のものは 9009 = 91 × 99 である。
では、3桁の数の積で表される回文数のうち最大のものはいくらになるか。


ソース

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int MaxInt = 0;
        string MaxStr = "";

        for (int I = 100; I <= 999; I++) {
            for (int J = I; J <= 999; J++) {
                int wkInt = I * J;
                if (wkInt < MaxInt) continue;

                string AscStr = wkInt.ToString();
                string DescStr = new string(AscStr.ToCharArray().Reverse().ToArray());
                if (AscStr == DescStr) {
                    MaxInt = wkInt;
                    MaxStr = string.Format("{0}*{1}={2}", I, J, wkInt);
                }
            }
        }
        Console.WriteLine(MaxStr);
    }
}


実行結果

913*993=906609


解説

string型の反転に手惑いました。