[codevs2419]ISBN号码

水题(各种坑数据,注意特判,一定要把所有条件想全)

var
        s:string;
        f:array[0..100] of longint;
        i,j,k,l,n,ans:longint;


        begin
                readln(s);
                for i:=1 to 10 do f[i]:=ord(s[i])-48;
                if s[length(s)]='X' then f[10]:=10;
                for i:=1 to 10 do if s[i]='?' then k:=i;
                j:=10;
                f[k]:=0;
                for i:=1 to 10 do
                begin
                f[i]:=f[i]*j;
                j:=j-1;
                end;

                //(10-k+1)
                for i:=1 to 10 do ans:=ans+f[i];
                if ans=0 then begin write(-1); exit; end;
                for i:=0 to 9 do if (ans+i*(10-k+1)) mod 11=0 then
                begin write(i); halt; end;

                if (k=10) and ((ans+10) mod 11 =0) then begin write('X'); halt; end;
                write(-1);
        end.

  喜欢就收藏一下,vic私人qq:1064864324,加我一起讨论问题,一起进步^-^

posted @ 2015-09-21 21:03  ROLL-THE-FIRST  阅读(209)  评论(0编辑  收藏  举报