题解

281 条题解

  • 0
    @ 2009-10-08 10:25:01

    var

    a,n:string;

    b,c,d,e,f,g,h,i,j,k,l:integer;

    m:char;

    begin

    readln(a);

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

    c:=ord(a[3])-48;

    d:=ord(a[4])-48;

    e:=ord(a[5])-48;

    f:=ord(a[7])-48;

    g:=ord(a[8])-48;

    h:=ord(a[9])-48;

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

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

    k:=(b*1+c*2+d*3+e*4+f*5+g*6+h*7+i*8+j*9) mod 11;

    case k of

    1:m:='1';

    2:m:='2';

    3:m:='3';

    4:m:='4';

    5:m:='5';

    6:m:='6';

    7:m:='7';

    8:m:='8';

    9:m:='9';

    10:m:='X';

    end;

    if a[13]=m then write('Right') else

    begin

    for k:=1 to 12 do

    write(a[k]);

    write(m);

    end;

    end.

  • 0
    @ 2009-10-05 11:17:39

    #include

    #include

    using namespace std;

    string isbn;

    short int s[10];

    int k=0;

    int main(){

    cin>>isbn;

    s[0]=isbn[0]-'0';

    s[1]=isbn[2]-'0';

    s[2]=isbn[3]-'0';

    s[3]=isbn[4]-'0';

    s[4]=isbn[6]-'0';

    s[5]=isbn[7]-'0';

    s[6]=isbn[8]-'0';

    s[7]=isbn[9]-'0';

    s[8]=isbn[10]-'0';

    s[9]=isbn[12]-'0';

    for(int i=0;i

  • 0
    @ 2009-10-05 11:14:01

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    #include

    main()

    {

    char s1[14];

    int i,j,k,sum,a[10];

    gets(s1);

    sum=0;

    k=0;

    for(i=0;i

  • 0
    @ 2009-10-04 09:52:00

    var

    s:string;

    m,i,l:longint;

    ch:char;

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

    begin

    readln(s);

    i:=0;

    l:=1;

    while i

  • 0
    @ 2009-10-03 21:21:39

    尊奇怪……vijos一下就过了……北航我提交了两次都没过……神奇……而且不是说是文件输入输出么……为啥这里我直接用的标准输入输出流也能过(其实是我忘了这茬= =)

    #include

    #include

    #include

    #include

    using namespace std;

    int main()

    {

    string isbn,s,s2,s3(1,'X');

    const size_t size(10);

    int n(0),a(0),count(1),check(0),arr,input(0);

    string::size_type k(0);

    size_t ix(0);

    cin>>isbn;

    s=isbn.substr(0,12);

    s2=isbn[12];

    if(s2!=s3){

    istringstream ss(s2);

    ss>>input;

    }else{

    input=10;

    }

    for(;k!=isbn.size();++k){

    if(isdigit(isbn[k])){

    string ts;

    ts=isbn.substr(k,1);

    istringstream is(ts);

    is>>n;

    arr[ix]=n;

    ++ix;

    }else{

    continue;

    }

    }

    for(size_t i(0);i!=size&&count

  • 0
    @ 2009-10-01 13:27:51

    我的比较麻烦,新手.......

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

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

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

    i:integer;

    alls:integer;

    checks:integer;

    duis:integer;

    begin

    for i:=1 to 13 do

    read(a[i]);

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

    for i:=2 to 4 do

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

    for i:=5 to 9 do

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

    if

    a[13]='X' then

    b[10]:=10

    else

    b[10]:=ord(a[13])-48;

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

    checks:= alls mod 11;

    if

    checks = b[10] then

    writeLn('Right');

    if

    checks b[10] then

    begin

    if checks=10 then

    a[13]:='X'

    else begin

    duis:=checks + 48;

    a[13]:=chr(duis);

    end;

    for i:= 1 to 13 do

    write(a[i]);

    end;

    end.

  • 0
    @ 2009-09-22 00:46:57

    少见的简单题,

    只要会读字符和转字符就能AC

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-09-20 11:17:49

    var j:array[0..100]of char;

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

    b,c,d:char; y,z:string;

    e,f,i:longint;

    begin

    read(j[1]);

    read(b);

    for i:=2 to 4 do read(j[i]);

    read(c);

    for i:=5 to 9 do read(j[i]);

    read(b);

    readln(z);

    for i:=1 to 9 do val(j[i],a[i]);

    for i:=1 to 9 do e:=e+a[i]*i;

    f:=e mod 11;

    if f=10 then y:='X'

    else str(f,y);

    if y=z then writeln('Right')

    else writeln(a[1],'-',a[2],a[3],a[4],'-',a[5],a[6],a[7],a[8],a[9],'-',y);

    end.

    竟然提交了两次...就因为x没大写...

  • 0
    @ 2009-09-20 09:58:18

    program isbn(input,output);

    var i,zs:longint;

    ab:array [0..10] of longint;

    ch:array [0..13] of char;

    begin

    for i:=1 to 13 do

    read(ch[i]);

    ab[1]:=ord(ch[1])-48;

    for i:=3 to 5 do

    ab:=ord(ch[i])-48;

    for i:=7 to 11 do

    ab:=ord(ch[i])-48;

    zs:=0;

    for i:=1 to 9 do

    zs:=(zs+(ab[i]*i)) mod 11;

    ab[10]:=ord(ch[13])-48;

    if (zs=ab[10]) or (ch[13]='X') and (zs=10)

    then write('Right')

    else begin

    for i:=1 to 12 do

    write(ch[i]);

    if zs=10

    then write('X')

    else write(zs);

    end;

    end.

    大家注意细节啊……我的AC率……

  • 0
    @ 2009-09-19 21:18:09

    var

    s : string ;

    i,k,a : longint ;

    ch : char ;

    begin

    readln(s);

    k := 0 ;

    for i := 1 to length(s)-1 do

    if s[i] '-' then

    begin

    k := k+1 ;

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

    end;

    a := a mod 11 ;

    if a=10 then ch := 'X'

    else ch := chr(a+48);

    if ch = s[length(s)] then write('Right')

    else

    begin

    s[length(s)] := ch ;

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

    end;

    end.

    水题!AC

  • 0
    @ 2009-09-18 19:55:16

    program p1484;

    var

    i,a,m:longint;

    s,s1:string;

    begin

    readln(s);s1:=copy(s,1,12);

    delete(s,2,1);

    delete(s,5,1);

    for i:=1 to 9 do

    begin

    if s[1]'X' then

    begin

    a:=0;

    val(s[1],a);

    end

    else a:=10;

    m:=a*i+m;

    delete(s,1,1);

    end;

    a:=0;

    val(s[2],a);

    if s[2]='X' then a:=10;

    m:=m mod 11;

    if a=m then writeln('Right')

    else if m10 then writeln(s1,m)

    else writeln(s1,'X');

    end.

  • 0
    @ 2009-09-17 18:01:08

    program p1484;

    var

    sum,i:longint;

    ch,ans:char;

    s:string;

    begin

    sum:=0;

    for i:= 1 to 9 do

    begin

    read(ch);

    s:=s+ch;

    if ch='-' then begin read(ch);s:=s+ch end;

    inc(sum,(ord(ch)-48)*i);

    end;

    sum:=sum mod 11;

    if sum=10 then ans:='X'

    else ans:=chr(sum+48);

    read(ch);read(ch);

    if ans = ch then writeln('Right')

    else writeln(s,'-',ans);

    end.

  • 0
    @ 2009-09-17 10:57:15

    RP为0了。。。

    不知怎么搞的。。交了N次。。太BS我自己了。。。

    我已经没有AC率了。。。

  • 0
    @ 2009-09-10 14:56:03

    细心啊......

  • 0
    @ 2009-09-06 21:05:11

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    水题啊!

    program p485;

    var

    j,sum,i,k:longint;

    b:array[1..20]of longint;

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

    begin

    j:=0; sum:=0;

    for i:=1 to 13 do read(a[i]); readln;

    if a[13]='X' then k:=10 else k:=ord(a[13])-48;

    for i:=1 to 12 do

    begin

    if ord(a[i])-48>=0 then

    begin

    inc(j);

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

    end;

    end;

    for i:=1 to j do sum:=sum+b[i]*i;

    if sum mod 11=k then writeln('Right')

    else begin

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

    if sum mod 11=10 then write('X') else write(sum mod 11);

    end;

    end.

  • 0
    @ 2009-09-06 20:45:14

    var

    x,tx:string[15];

    i,j,t,c:longint;

    begin

    readln(x);

    c:=0;

    tx:=x;

    j:=1;

    for i:=1 to 11 do

    begin

    if x[i]'-'then

    begin

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

    inc(j);

    end;

    end;

    c:=c mod 11;

    if c=10 then tx[13]:='x'

    else

    tx[13]:=char(c+48);

    if tx=x then writeln('Right')

    else

    writeln(tx);

    readln;

    readln;

    end.

  • 0
    @ 2009-09-04 15:28:26

    program isbn;

    var s:string;

    t,p,i:longint;

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

    begin

    read(s);

    t:=0;

    p:=0;

    for i:=1 to length(s)-2 do if s[i]'-' then

    begin

    t:=t+1;

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

    p:=p+a[t];

    end;

    p:=p mod 11;

    if (s='X')and(p=10) then begin writeln('Right');halt;end;

    if (ord(s)-ord('0'))=p then begin writeln('Right');halt;end

    else if p=10 then s:='X'

    else s:=chr(p+ord('0'));

    writeln(s);

    end.

  • 0
    @ 2009-08-30 08:57:39

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    program ex;

    var i,j,temp,t,tol,k:longint;

    s,ss,st:string;

    begin

    readln(s);

    t:=0;

    tol:=0;

    for i:=1 to 11 do

    begin

    if s[i]='-' then

    inc(t)

    else

    begin

    val(s[i],temp);

    inc(tol,temp*(i-t));

    end;

    end;

    st:='';

    val(s[length(s)],temp);

    tol:=tol mod 11;

    if tol=10 then st:='X';

    if (temp=tol) or (st=s[length(s)]) then

    begin

    writeln('Right');

    halt;

    end

    else

    begin

    str(tol,ss);

    for i:=length(s) downto 1 do

    if s[i]='-' then

    begin

    k:=i;

    break;

    end;

    delete(s,k+1,length(s)-k);

    if st'' then s:=s+st

    else

    s:=s+ss;

    writeln(s);

    end;

    end.

    我也不知道说什么。。

    出乎我的意料。。。 居然AC了。。

  • 0
    @ 2009-08-26 13:12:53

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    郁闷,为什么会程序输出比正确答案长呢?

  • 0
    @ 2009-08-21 16:25:50

    80分的注意了

    输入的字符串最后一位是X

    program p1484(input,output);

    var

    s:string;

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

    i,j:integer;

    begin

    readln(s);

    j:=1;

    for i:=1 to 12 do

    if s[i]'-'

    then

    begin

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

    inc(j);

    end;

    if s[13]='X'

    then a[10]:=10

    else a[10]:=ord(s[13])-ord('0');

    j:=0;

    for i:=1 to 9 do

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

    j:=j mod 11;

    if j=a[10]

    then writeln('Right')

    else

    begin

    if j=10

    then s[13]:='X'

    else s[13]:=chr(j+ord('0'));

    writeln(s);end;

    end.

信息

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