トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
Cマガ電脳クラブ(第006回) りばーす・リバース
問題
741という数に注目してみよう。まず3で割る。
741
--- = 247
3
次に、この247を逆から読む。247 (逆転) → 742
そして、1を引く。742 - 1 = 741
なんともとの741に戻ってしまった。
ここで問題。"ある数を3で割り、その結果の数字を逆転して、それから1を引いたらもとの数と一致する"
という正の数を、この741以外にひとつ見つけてください。
もちろん3桁とは限らない。
ソース
using System;
using System.Linq;
class Program
{
static void Main()
{
var sw = System.Diagnostics.Stopwatch.StartNew();
for (int I = 3; I < int.MaxValue; I += 3) {
int wkInt = I;
wkInt /= 3;
string wkStr = wkInt.ToString();
wkInt = int.Parse(new string(wkStr.ToCharArray().Reverse().ToArray()));
wkInt--;
if (I == wkInt) {
Console.WriteLine("{0}。解として{1}を発見しました。", sw.Elapsed, I);
if (I != 741) return;
}
}
}
}
実行結果
00:00:00.0119540。解として741を発見しました。
00:00:09.6576232。解として7425741を発見しました。
解説
LINQのReverseメソッドでChar型の配列を反転させてます。