题解

279 条题解

  • 0
    @ 2008-12-22 12:51:43

    var i,j,m,n,c,s,x:longint;

    st,st1,k:string;

    begin

    readln(st);

    st1:=copy(st,1,12);

    j:=1;

    for i:=1 to 11 do

    begin

    if st[i]'-' then begin

    val(st[i],m,c);

    s:=m*j+s;

    inc(j);

    end;

    end;

    x:=s mod 11;

    if x10 then str(x,k)

    else k:='X';

    if k=st[13] then writeln('Right')

    else writeln(st1,k);

    end.

  • 0
    @ 2009-09-04 00:28:57

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    被X害死了

    一开始,50分,X输出没大写

    又是80分,原来是读入时的X也是大写的

    同学们注意啊

    var

    s,s1:string;

    i,j,n,n1:longint;

    x:char;

    z:boolean;

    procedure int;

    begin

    readln(s);

    s1:=s;

    x:=s[length(s)];

    n1:=length(s);

    for i:=1 to length(s) do

    if s[i]='-' then delete(s,i,1);

    n:=length(s);

    end;

    procedure gai;

    begin

    if (j mod 11)=10 then

    s1[n1]:='X'

    else

    s1[n1]:=chr((j mod 11)+48);

    end;

    procedure doit;

    begin

    j:=0;

    z:=false;

    for i:=1 to n-1 do

    j:=j+(ord(s[i])-48)*i;

    if (j mod 11)=10 then

    if x='X' then begin z:=true;exit; end

    else begin

    gai;

    exit;

    end;

    if (j mod 11)=(ord(x)-48) then begin z:=true;exit; end

    else begin

    gai;

    exit;

    end;

    end;

    begin

    int;

    doit;

    if z then writeln('Right')

    else

    write(s1);

    end.

  • 0
    @ 2008-12-19 19:25:36

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    极品水……

  • 0
    @ 2008-12-19 17:17:18

    编译通过...

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

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

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

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

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

     ├ 错误行输出

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

     ├ 错误行输出

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

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

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

     ├ 错误行输出

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

    为什么啊?

  • 0
    @ 2008-12-18 20:34:11

    狂晕输出'X'输成小写...我的通过率啊....

  • 0
    @ 2008-12-16 22:45:30

    纯净水。。。

  • 0
    @ 2008-12-14 14:49:41

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-12-12 20:59:15

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program isbn;

    var

    s:string;

    a:array[1..20] of integer;

    i,j,k,l:integer;

    begin

    readln(s);

    k:=0; l:=0;

    for i:=1 to 12 do if s[i]'-' then

    begin

    inc(k);

    l:=(ord(s[i])-ord('0'))*k+l;

    end;

    l:=l mod 11;

    if l=10 then

    begin

    if s[13]='X' then writeln('Right')

    else writeln(copy(s,1,12),'X');

    end

    else begin

    if (ord(s[13])-ord('0'))=l then writeln('Right')

    else writeln(copy(s,1,12),l);

    end;

    end.

    就是这一题,成就了我的NOIP2008!!哈哈哈哈!!!!!

  • 0
    @ 2008-12-09 19:15:00

    惊愕!只输出Right竟然也能得30分......

    可惜我考试没有cheat,结果竟然是0......

    狂汗......

    只输出Right的结果:

    编译通过...

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

    ├ 测试数据 02:运行时错误...|错误号: 5

    ├ 测试数据 03:运行时错误...|错误号: 5

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

    ├ 测试数据 05:运行时错误...|错误号: 5

    ├ 测试数据 06:运行时错误...|错误号: 5

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

    ├ 测试数据 08:运行时错误...|错误号: 5

    ├ 测试数据 09:运行时错误...|错误号: 5

    ├ 测试数据 10:运行时错误...|错误号: 5

  • 0
    @ 2008-12-09 19:06:24

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    8分钟解决

  • 0
    @ 2008-12-08 13:39:53

    program p1484;

    var

    s:string;

    a:array[1..20] of integer;

    p,i,t:integer;

    begin

    readln(s);

    p:=0;

    for i:=1 to length(S) do

    begin

    if s[i] in ['0'..'9'] then begin inc(p);a[p]:=ord(s[i])-ord('0'); end

    else if s[i]='X' then begin inc(p);a[p]:=10;end;

    end;

    for i:=1 to p-1 do

    begin

    inc(t,a[i]*i);

    t:=t mod 11;

    end;

    if t=a[p] then writeln('Right')

    else

    begin

    write(copy(s,1,length(s)-1));

    if not(t=10) then writeln(t)

    else writeln('X');

    end;

    end.

  • 0
    @ 2008-12-07 14:19:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    最短的程序...

    program p1484;

    var

    s:string[13];

    i,j,x1:integer;

    x2:char;

    begin

    readln(s);

    j:=0;x1:=0;

    for i:=1 to 11 do

      if s[i]'-'

       then begin

           inc(j);

           inc(x1,j*(ord(s[i])-48));

         end;

    if x1 mod 11=10

      then x2:='X'

      else x2:=chr(x1 mod 11+48);

    if x2=s[13]

      then writeln('Right')

      else begin

         s[13]:=x2;

         writeln(s);

         end;

    end.

  • 0
    @ 2008-12-07 14:16:50

    笨笨的,短短的题解

    {kevin}

    program p1484;

    var

    i,t:longint;

    ch:char;

    a:string[9];

    begin

    read(a[1],ch,a[2],a[3],a[4],ch,a[5],a[6],a[7],a[8],a[9],ch,ch);

    t:=0;

    for i:=1 to 9 do

    t:=t+(ord(a[i])-ord('0'))*i;

    t:=t mod 11;

    if ((ch='X')and(t=10)) or ((ord(ch)-ord('0'))=t)

    then write('Right')

    else begin

    ch:='-';

    write(a[1],ch,a[2],a[3],a[4],ch,a[5],a[6],a[7],a[8],a[9],ch);

    if t=10

    then write('X')

    else write(t);

    end;

    end.

  • 0
    @ 2008-12-06 23:06:28

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    最短的程序...

    program p1484;

    var

    s:string[13];

    i,j,x1:integer;

    x2:char;

    begin

    readln(s);

    j:=0;x1:=0;

    for i:=1 to 11 do

    if s[i]'-'

    then begin

    inc(j);

    inc(x1,j*(ord(s[i])-48));

    end;

    if x1 mod 11=10

    then x2:='X'

    else x2:=chr(x1 mod 11+48);

    if x2=s[13]

    then writeln('Right')

    else begin

    s[13]:=x2;

    writeln(s);

    end;

    end.

  • 0
    @ 2008-12-06 16:29:37

    program isbn;

    var s,i,j,z,b1,b2,v:integer;

    m,s1,a1,b:string;

    a:char;

    begin

    readln(m);

    j:=1;

    z:=0;

    a1:=copy(m,13,1);

    val(a1,b1,v);

    for i:=1 to 12 do

    begin

    b:=copy(m,i,1);

    if (b='1') or (b='0') or (b='2') or (b='3') or (b='4')or (b='5')or

    (b='6')or (b='7')or (b='8')or (b='9') then begin

    val(b,b2,v);

    z:=b2*j+z; inc(j);

    end;end;

    delete(m,13,1);

    s:=z mod 11; str(s,s1);

    if s=10 then s1:='X';

    if s1=a1 then write('Right') else write(m,s1);

    readln;

    end.

    我的比较短,楼下的

  • 0
    @ 2008-12-06 16:28:28

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var st:string;

    i,s,t:integer;

    ch:char;

    begin

    t:=1;

    readln(st);

    s:=0;

    for i:= 1 to 12 do

    if ( ord(st[i]) - 48 in [0..9] ) then begin s:= s + (ord(st[i])-48)*t ; inc(t); end;

    s:= s mod 11;

    if s = 10 then ch:='X'

    else ch:= chr(s+48);

    if ch = st[13] then writeln('Right')

    else

    begin

    st[13]:=ch;

    writeln(st);

    end;

    end.

    下面的真长

  • 0
    @ 2008-12-06 12:43:09

    program ISBN(input,output);

    var

    re:string;

    k:char;

    i,j:integer;

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

    he:longint;

    yan,shuyan:char;

    yan1:integer;

    zhen:integer;

    begin

    readln(re);

    j:=2;

    k:=re[1];

    a[1]:=ord(k)-48;

    for i:=3 to 5 do

    begin

    k:=re[i];

    a[j]:=ord(k)-48;

    j:=j+1;

    end;

    for i:=7 to 11 do

    begin

    k:=re[i];

    a[j]:=ord(k)-48;

    j:=j+1;

    end;

    yan:=re[13];

    if yan='X' then yan1:=10

    else yan1:=ord(yan)-48;

    for i:=1 to 9 do

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

    zhen:=he mod 11;

    if zhen=yan1 then begin writeln('Right'); halt; end;

    if zhen10 then begin for i:=1 to 12 do write(re[i]); writeln(zhen); end

    else if zhen=10 then begin for i:=1 to 12 do write(re[i]); writeln('X'); end;

    end.

    秒杀!

    water

  • 0
    @ 2008-12-06 08:09:03

    注意大小写,应该就没问题了。

  • 0
    @ 2009-01-07 18:38:58

    编译通过...

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

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

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

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

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

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

     ├ 错误行输出

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

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

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

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

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

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

    #include

    #include

    int main()

    { long i,s,ISBN[10]={0},i1,is1=3,a,isb1,i2,is2=8,isb2,t,cj=0;

    long isbn[4];

    for(i=0;i1)

    { isb1=i1%10;

    i1=i1/10;

    ISBN[is1]=isb1;

    is1--;

    }

    i2=fabs(isbn[2]);

    while(i2>1)

    { isb2=i2%10;

    i2=i2/10;

    ISBN[is2]=isb2;

    is2--;

    }

    ISBN[9]=fabs(isbn[3]);

    for(t=0;t

  • 0
    @ 2008-12-04 10:21:14

    记录编号 Flag 得分 记录信息 环境 评测机 程序提交时间

    R1086229 Accepted 100 From suning-

     P1484 FPC Vivid Puppy 2008-12-4 10:18:43

    R1086228 Unaccepted 50 From suning-

     P1484 FPC Vivid Puppy 2008-12-4 10:17:50

    R1086227 Unaccepted 0 From suning-

     P1484 FPC Vivid Puppy 2008-12-4 10:14:12

    额~~~第一次余数为10没注意,第二次x小写了,第三次终于过了

    人品阿

信息

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