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

Cマガ電脳クラブ(第006回) りばーす・リバース

問題

741という数に注目してみよう。まず3で割る。

741
--- = 247
 3

次に、この247を逆から読む。247 (逆転) → 742
そして、1を引く。742 - 1 = 741
なんともとの741に戻ってしまった。

ここで問題。"ある数を3で割り、その結果の数字を逆転して、それから1を引いたらもとの数と一致する"
という正の数を、この741以外にひとつ見つけてください。
もちろん3桁とは限らない。


ソース

<?php error_reporting(E_ALL);

for($I = 3 ; $I < PHP_INT_MAX ; $I += 3){
    $wkInt = $I;
    $wkInt /= 3;
    $wkStr = StrVal($wkInt);
    $wkInt = IntVal(strrev($wkStr));
    $wkInt--;

    if($I == $wkInt) {
        printf('解として%dを発見しました。' . PHP_EOL , $I);
        if ($I != 741) return;
    }
}


実行結果

解として741を発見しました。
解として7425741を発見しました。


解説

ナイーブに解いてます。
PHPでは、strrev関数で文字列を反転できます。

C#で解いたもの