分类:
2009-08-14 01:23:32
-module(hello). -export([hello/0]).
hello() -> io:format("Hello World~n"). |
-module(prime). -export([factors/1]). factors(N) -> lists:reverse(factors(2, N, [])). factors(_, N, L) when N =< 1 -> L; factors(P, N, L) when N rem P =:= 0 -> factors(P, N div P, [P | L]); factors(P, N, L) -> factors(P+1, N, L). |
-module(hanoi). -export([hanoi/1]). hanoi(N) when N < 1 -> []; hanoi(N) -> hanoi(N, a, b, c). hanoi(1, A, _, C) -> [{A, C}]; hanoi(N, A, B, C) -> hanoi(N-1, A, C, B) ++ [{A, C}] ++ hanoi(N-1, B, A, C). |
-module(queens). -export([queens/1]). queens(N) -> queens(N, [], 0, 0). queens(N, _L, N, R) -> R; queens(N, L, _X, R) when length(L) =:= N -> io:format("~p~n", [L]), R + 1; queens(N, L, X, R) -> D = length(L), Checked = is_checked(L, X, D), R1 = if Checked -> queens(N, [X | L], 0, R); true -> R end, queens(N, L, X+1, R1). is_checked([], _, _) -> true; is_checked([H|T], X, D) -> if H =:= X ->false; abs(X - H) =:= abs(length(T) - D) -> false; true -> is_checked(T, X, D) end. |