「プロジェクトオイラー問112」の編集履歴(バックアップ)一覧はこちら

プロジェクトオイラー問112」(2014/03/06 (木) 05:17:57) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20112 *Problem 112 「はずみ数」 † 左から右までどの桁もその左の桁を下回らない数を増加数と呼ぶ. 例えば, 134468. 同様に, どの桁もその右の桁を下回らない数を減少数と呼ぶ. 例えば, 66420. 増加数でも減少数でもない正の整数をはずみ数と呼ぶことにする. 例えば, 155349. 100以下にはずみ数が無いのは明らかだが, 1000未満では半数を少し上回る525個がはずみ数である. 実際, はずみ数の割合が50%に達する最少の数は538である. 驚くべきことに, はずみ数はますます一般的になり, 21780でははずみ数の割合は90%に達する. はずみ数の割合がちょうど99%になる最小の数を求めよ. 解法 1から単純に検証していきます。 それだけ。 is_doun([_]):-!. is_doun([X,Y|Rest]):- !, X=<Y, is_doun([Y|Rest]). type(Num):-number_codes(Num,List),is_upper(List),!. type(Num):-number_codes(Num,List),is_doun(List),!. search(N,C1,C2):-C2>0,C1*99=:=C2,!, Ans is N-1, write(Ans). search(N,C1,C2):- type(N), !, C11 is C1+1, N1 is N+1, search(N1,C11,C2). search(N,C1,C2):- !, C22 is C2+1, N1 is N+1, search(N1,C1,C22).

表示オプション

横に並べて表示:
変化行の前後のみ表示: