-module(id).
-export([digit/1]).
calc([], []) -> 0;
calc([Hs | Ts], [Hm | Tm]) -> (Hs - 16#30) * (Hm - 16#30 + 1) + calc(Ts, Tm).
digit(A) ->
L1 = length(A),
L2 = length([X || X <- A, 16#30 =< X, X =< 16#39]),
case (L1 =:= L2) and (17 =< L1) of
true ->
P = calc(lists:sublist(A, 17), "68947310526894731") rem 11,
{ok, [element(P + 1, {$1, $0, $X, $9, $8, $7, $6, $5, $4, $3, $2})]};
false ->
{error, einval}
end.
阅读(520) | 评论(0) | 转发(0) |