题解

281 条题解

  • 0
    @ 2009-08-17 15:33:54

    var s,s1:string;

    c:char;

    i,j,n,m,code,x,l:integer;

    begin

    readln(s);

    s1:=copy(s,1,1)+copy(s,3,3)+copy(s,7,5);

    for i:=1 to 9 do

    begin

    val(s1[i],m,code);

    l:=l+m*i;

    end;

    l:=l mod 11 ;

    if l=10

    then c:='X'

    else

    c:=chr(l+48);

    if c=s[13]

    then writeln('Right')

    else

    begin s[13]:=c;

    writeln(s);

    end;

    end.

    妈的,x和r要大写才Ac,还我交了3次。

  • 0
    @ 2009-08-17 15:15:18

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    l,a,i,tot:longint;

    s,s1,b:string;

    st:array[1..10] of string;

    sum:array[1..10] of longint;

    begin

    readln(s);

    st[1]:=copy(s,1,1);

    st[2]:=copy(s,3,3);

    st[3]:=copy(s,7,5);

    st[4]:=copy(s,13,1);

    s1:=st[1]+st[2]+st[3];

    l:=length(s1);

    for i:=1 to l do

    sum[i]:=ord(s1[i])-ord('0');

    for i:=1 to 9 do

    tot:=tot+sum[i]*i;

    a:=tot mod 11;

    str(a,b);

    if st[4]='X'

    then begin

    if b='10'

    then writeln('Right')

    else writeln(st[1],'-',st[2],'-',st[3],'-',b);

    end;

    if st[4]'X'

    then if b=st[4]

    then writeln('Right')

    else begin

    a:=tot mod 11;

    str(a,b);

    if b='10'

    then writeln(st[1],'-',st[2],'-',st[3],'-X')

    else writeln(st[1],'-',st[2],'-',st[3],'-',b);

    end;

    end.

    提交了8次,才AC,唉!!!!!!!!!!!!!

  • 0
    @ 2009-08-17 10:51:30

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    ch,l:char;

    s,t:string;

    i,j,k,n,m:integer;

    begin

    read(ch);

    i:=1;

    n:=0;

    while i

  • 0
    @ 2009-08-16 18:34:06

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    i,j,ans,m,n:longint;

    a:array[1..9] of longint;

    s:string;

    begin

    readln(s);

    n:=length(s);

    j:=1;

    for i:=1 to n-1 do

    if s[i]'-' then

    begin

    a[j]:=ord(s[i])-ord('0');

    inc(j);

    end;

    ans:=0;

    for i:=1 to 9 do

    ans:=ans+a[i]*i;

    if (s[n]='X') and (ans mod 11=10) then

    writeln('Right')

    else

    if ans mod 11=ord(s[n])-ord('0') then

    writeln('Right')

    else if ans mod 11=10 then

    begin

    for i:=1 to n-1 do

    write(s[i]);

    writeln('X');

    end

    else

    begin

    for i:=1 to n-1 do

    write(s[i]);

    writeln(ans mod 11);

    end;

    end.

    Flag    Accepted

    题号   P1484

    类型(?)   字符串处理

    通过   1781人

    提交   4438次

    通过率   40%

    难度   1

    提交 讨论 题解

  • 0
    @ 2009-08-15 11:18:30

    var

    s:string;

    data:array[1..13] of integer;

    len,check:longint;

    procedure init;

    var

    i,code:longint;

    begin

    readln(s);

    len:=length(s);

    i:=len;

    while i>=1 do

    begin

    if s[i]'-' then data[i]:=ord(s[i])-48;

    dec(i);

    end;

    end;

    procedure main;

    var

    i,j:longint;

    temp:string;

    begin

    check:=0;

    j:=1;

    for i:=1 to len-1 do

    begin

    if (s[i]'-') then begin

    check:=check+data[i]*j;

    inc(j);

    end;

    end;

    check:=check mod 11;

    if check=10 then temp:='X'

    else temp:=chr(check+48);

    if temp=s[len] then writeln('Right')

    else begin

    for i:=1 to len-1 do write(s[i]);

    writeln(temp);

    end;

    end;

    begin

    init;

    main;

    readln;

    end.

  • 0
    @ 2009-08-14 19:50:44

    关键是判断是不是数字

    字符串水题

  • 0
    @ 2009-08-13 17:00:48

    var st:string;

    a,b,c:integer;

    x:array[1..13] of integer;

    begin

    readln(st);

    for a:=1 to 13 do

    x[a]:=ord(st[a])-ord('0');

    b:=x[1]+x[3]*2+x[4]*3+x[5]*4+x[7]*5+x[8]*6+x[9]*7+x[10]*8+x[11]*9;

    c:=b mod 11;

    if c=x[13] then writeln('Right')

    else

    begin

    for a:=1 to 12 do

    write(st[a]);

    write(c);

    end;

    end.

  • 0
    @ 2009-08-13 12:10:27

    program sad;

    var st,c,code,x,i:integer;

      a:array[1..1000]of char;

      b:array[1..1000]of integer;

    begin

      for i:=1 to 13 do

       read(a[i]);

       st:=0;c:=0;

      for i:=1 to 11 do

       if ((i2) and (i6))

       then

         begin

         c:=c+1;

         b[c]:=ord(a[i])-ord('0');

         end;

       for i:=1 to 9 do

       st:=st+b[i]*i;

       c:=st mod 11;

       if ((c=10) and (a[13]='X')) or (c=(ord(a[13])-ord('0')))

       then write('Right')

       else

        begin

         for i:=1 to 12 do

         write(a[i]);

         if c=10 then write('X')

             else write(c);

        end;

    end.        

  • 0
    @ 2009-08-12 10:47:48

    是不是换行的错误?

  • 0
    @ 2009-08-11 22:38:22

    来一个精炼点的

    #include

    using namespace std;

    int main()

    {

    char a[20],s;

    int sum=0,tot=1;

    cin>>a;

    for(int i=0;i

  • 0
    @ 2009-08-11 19:47:44

    Program P1484;

    var s:string;

    a:array[0..100] of integer;

    tot,k,i,j,n,m:integer;

    begin

    readln(s);

    n:=length(s);

    k:=0;

    for i:=1 to n-1 do

    if ('0'

  • 0
    @ 2009-08-11 18:21:19

    WA了6次才发现 原来是X与x的区别 靠!!!

  • 0
    @ 2009-08-10 10:02:58

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案错误...程序输出比正确答案长

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案错误...程序输出比正确答案长

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:80 有效耗时:0ms

    var a:array[1..3139] of integer;

    s:array[1..225] of string;

    o:string;

    j,i:integer;

    begin

    readln(o);

    s[1]:=copy(o,13,1);

    s[2]:=copy(o,1,1);

    s[3]:=copy(o,3,1);

    s[4]:=copy(o,4,1);

    s[5]:=copy(o,5,1);

    s[6]:=copy(o,7,1);

    s[7]:=copy(o,8,1);

    s[8]:=copy(o,9,1);

    s[9]:=copy(o,10,1);

    s[10]:=copy(o,11,1);

    for i:=1 to 10 do

    val(s[i],a[i],j);

    delete(o,13,1);

    if (a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11

    =a[1] then writeln('Right');

    if (a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11

    a[1] then

    begin

    a[1]:=(a[2]*1+a[3]*2+a[4]*3+a[5]*4+a[6]*5+a[7]*6+a[8]*7+a[9]*8+a[10]*9) mod 11;

    write(o);

    if a[1]

  • 0
    @ 2009-08-09 09:46:51

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案错误...程序输出比正确答案长

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案错误...程序输出比正确答案长

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:80 有效耗时:0ms

    什么问题呀》》》

  • 0
    @ 2009-08-04 23:05:03

    var

    str:string;

    i,j,t:longint;

    begin

    readln(str);

    for i:=1 to 12 do

    if str[i] in ['0'..'9'] then

    begin

    j:=j+1;

    case str[i] of

    '0':t:=t; '6':t:=t+j*6;

    '1':t:=t+j; '7':t:=t+j*7;

    '2':t:=t+j*2; '8':t:=t+j*8;

    '3':t:=t+j*3; '9':t:=t+j*9;

    '4':t:=t+j*4;

    '5':t:=t+j*5;

    end;

    end;

    t:=t mod 11;

    if (t=ord(str[13])-ord('0')) or (t=10) and(str[13]='X')

    then begin writeln('Rignt'); halt; end;

    for i:=1 to 12 do write(str[i]);

    if t10 then write(t)

    else write('X');

    end.

    编译通过...

    ├ 测试数据 01:答案错误... ├ 标准行输出 Rignt

     ├ 错误行输出 Rignt

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案错误... ├ 标准行输出 Rignt

     ├ 错误行输出 Rignt

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案错误... ├ 标准行输出 Rignt

     ├ 错误行输出 Rignt

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Unaccepted 有效得分:70 有效耗时:0ms

    帮忙看看哪里出了问题?

    偶知道了,低级错误,晕死了

  • 0
    @ 2009-08-04 12:12:26

    Program ISBN;

    Var str1:string;

    sum,i,j:longint;

    a:char;

    Begin

    readln(str1);

    sum:=0;

    j:=1;

    for i:=1 to 11 do

    begin

    if str1[i] in ['0'..'9'] then

    begin

    sum:=(sum+(ord(str1[i])-48)*j) mod 11;

    j:=j+1;

    end;

    end;

    if sum=10 then a:='X'

    else a:=chr(sum+48);

    if a=str1[13] then writeln('Right') else

    begin

    for i:=1 to 12 do write(str1[i]);

    writeln(a);

    end;

    End.

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0m

  • 0
    @ 2009-08-01 17:08:38

    秒杀

    var

    ibsn:string;

    numi:longint;

    i,total,m,temp:longint;

    begin

    readln(ibsn);

    if ibsn[length(ibsn)]'X'

    then val(ibsn[length(ibsn)],m)

    else m:=10;

    i:=1;numi:=i;

    repeat

    if ibsn[i]'-'

    then

    begin

    val(ibsn[i],temp);

    total:=temp*numi+total;

    inc(numi);

    end;

    inc(i);

    until i=length(ibsn)-1;

    if total mod 11=m

    then writeln('Right')

    else

    begin

    for i:=1 to length(ibsn)-1 do write(ibsn[i]);

    if total mod 1110

    then writeln(total mod 11)

    else writeln('X');

    end;

    end.

  • 0
    @ 2009-07-31 23:06:35

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    include

    include

    using namespace std;

    string code;

    void print()

    {

    for(int i=0;i

  • 0
    @ 2009-07-28 15:01:09

    var

    a:string;

    p:array[1..13]of integer;

    i,n,m:integer;

    begin

    read(a);

    for i:=1 to 13 do

    if (a[i]'-')and(a[i]'X')

    then

    p[i]:=ord(a[i])-48;

    for i:=1 to 11 do

    begin

    if a[i]'-'

    then begin

    m:=m+1;

    p[m]:=p[i]*m;

    n:=n+p[m];

    end;

    end;

    n:=n mod 11;

    if n10 then

    if n=p[13]

    then write('Right')

    else begin

    a[13]:=chr(n+48);

    write(a);

    end;

    if n=10 then

    if a[13]='X'

    then write('Right')

    else begin

    a[13]:='X';

    write(a);

    end;

    end.

  • 0
    @ 2009-07-27 18:37:15

    最没技术的解法:

    program isbn;

    var

    s,t:string;

    n,m:longint;

    begin

    readln(s);

    t:=copy(s,1,1);

    val(t,n);

    m:=0;

    m:=m+n*1;

    t:=copy(s,3,1);

    val(t,n);

    m:=m+n*2;

    t:=copy(s,4,1);

    val(t,n);

    m:=m+n*3;

    t:=copy(s,5,1);

    val(t,n);

    m:=m+n*4;

    t:=copy(s,7,1);

    val(t,n);

    m:=m+n*5;

    t:=copy(s,8,1);

    val(t,n);

    m:=m+n*6;

    t:=copy(s,9,1);

    val(t,n);

    m:=m+n*7;

    t:=copy(s,10,1);

    val(t,n);

    m:=m+n*8;

    t:=copy(s,11,1);

    val(t,n);

    m:=m+n*9;

    m:=m mod 11;

    t:=copy(s,13,1);

    if t='X' then n:=10 else val(t,n);

    if n=m then writeln('Right') else begin

    t:=copy(s,1,12); str(m,s); if s='10' then s:='X'; t:=t+s; writeln(t); end;

    end.

信息

ID
1484
难度
5
分类
字符串 点击显示
标签
递交数
14462
已通过
4955
通过率
34%
被复制
33
上传者