Chinaunix首页 | 论坛 | 博客
  • 博客访问: 212832
  • 博文数量: 70
  • 博客积分: 2050
  • 博客等级: 大尉
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-15 21:42
文章分类

全部博文(70)

文章存档

2013年(1)

2011年(5)

2010年(3)

2009年(9)

2008年(17)

2007年(6)

2006年(29)

我的朋友

分类:

2008-12-27 13:20:59

-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) |
给主人留下些什么吧!~~