プロジェクトオイラー問99

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2099
Problem 99 「最大のべき乗」 †
一行に自然数a,bが書かれたテキストファイルからa^bが最も大きい数になる行をこたえる問題。

解法
Prolog言語なので整数で計算してもよいですがlog計算でも答えがでるのでいいかと思います。


maxL([],_,_,AnsRow):-!,
	write(AnsRow).
maxL([[A,B]|Rest],L,Row,_):-
	L1 is log(A)*B,
	L1>L,
 	!,
	Row1 is Row+1,
	maxL(Rest,L1,Row1,Row).
maxL([_|Rest],L,Row,AnsRow):-
	Row1 is Row+1,
 	maxL(Rest,L,Row1,AnsRow).

main:-
	see('pe99.txt'),
	read(R),
	seen,
	maxL(R,0,1,0).
最終更新:2015年01月07日 03:08