题解

46 条题解

  • 0
    @ 2008-10-17 15:58:12

    【本题出错指南】

    所有人都给我听好了!!!

    这道题严重鄙视出题人!!!

    大家注意以下几点

    1、读入数据用readln,否则“答案错误...程序输出比正确答案长”

    (靠,WA了我4次);

    2、一定要用write输出完所有数据,最后writeln,否则WA。(这点严重鄙视ing)

    3、注意输出用的辅助字符串"0123456789ABCDEFGHIJ"是不是多写了一个0成了"01234567890ABCDEFGHIJ",否则WA。(这点自认RP太差,WA了5次)。

    另外字符串中的‘0’对应位置为1,所以输出时要+1,即

    Write(uuu[ls[j]+1]);

    而不是

    Write(uuu[ls[j]]);

    大家一定要注意

    最后结语:干掉出题人!浪费我2小时。痛哭ing。。。

    【测试】

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    【标程】

    Program vijos_p1465;

    Const

    uuu: String[20] = '0123456789ABCDEFGHIJ';

    Var

    n, r: Longint;

    Procedure ZS_d2n(a, b: Longint);

    Var

    ls: array[0..100] of Integer;

    i, j: Longint;

    Begin

    i := 0;

    While a0 do

    Begin

    Inc(i);

    ls[i]:= a mod b;

    a:= a div b;

    If ls[i] < 0 then

    Begin Dec(ls[i], b); Inc(a); End;

    End;

    for j:= i downto 1 do

    Write(uuu[ls[j]+1]);

    End;

    Begin

    While Not Eof do

    Begin

    Readln(n, r);

    Write(n, '=');

    ZS_d2n(n, r);

    Write('(base ', r, ')');

    Writeln;

    End;

    End.

  • 0
    @ 2008-10-17 10:16:54

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

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

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

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

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

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

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

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

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

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

    第五组 数据怎么回事啊

    while (a0)or(m=0) do

    begin

    q:=a div r;

    if a mod r

  • 0
    @ 2008-10-15 20:36:39

    奇怪....我用了while,所以第五组数据就很rp地过了...

    楼下的rp真低....去拜一下观音娘娘..吧....^_^(ps:楼下的解这道题的时候我在旁边冷眼笑....)

  • 0
    @ 2008-10-15 20:33:55

    第五组数据答案为:

    0=(base -R)

    靠!!!!这么个错法让我WA了N次!!!!

  • 0
    @ 2008-10-14 23:12:36

    样例全过 测试全疯掉的看这个

    进制下的数:-R∈{-2,-3,-4,....-20}

    开始开到16结果挂了

  • 0
    @ 2008-10-14 17:05:56

    数据是错的。第五组数据输入的N有0但输出却是0=(base s)(s为进制数我不知道具体值)

  • 0
    @ 2008-10-13 17:25:39

    测试数据都过了,怎么评测的时候什么数据都没过....

    ├ 测试数据 01:答案错误...

     ├ Hint: 拿出纸笔算算看! 

    ├ 标准行输出 -1329...

     ├ 错误行输出 -986=...

    ├ 测试数据 02:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -3...

     ├ 错误行输出 -2

    ├ 测试数据 03:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -19384...

     ├ 错误行输出 -15061...

    ├ 测试数据 04:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -8152...

     ├ 错误行输出 -1914...

    ├ 测试数据 05:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -3367...

     ├ 错误行输出 -5309...

    ├ 测试数据 06:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -446=...

     ├ 错误行输出 -1927...

    ├ 测试数据 07:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -16747=...

     ├ 错误行输出 -1683=1...

    ├ 测试数据 08:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -3068...

     ├ 错误行输出 -2156...

    ├ 测试数据 09:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -3259...

     ├ 错误行输出 -2072...

    ├ 测试数据 10:答案错误...

     ├ Hint: 拿出纸笔算算看!

     ├ 标准行输出 -1303...

     ├ 错误行输出 -9644...

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

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

    能解释一下么...貌似我的输出格式上有误,望大牛点拨

  • 0
    @ 2008-10-12 16:05:43

    样例输出第一行应该是:

    30000=1101101010111000(base -2)

    主过程:s为ansistring

    readln(a,b);

    write(a);

    s:='';

    while a0 do

    begin

    s:=num[mod_(a,b)]+s;

    a:=div_(a,b);

    end;

  • 0
    @ 2008-10-11 15:29:50

    大家注意样例 错了

    原来

    30000 -2

    -20000 -7

    28800 -16

    -25000 -16

    30000=1101101010111000(base -2)

    -20000=1111011000100000(base -2)

    28800=19180(base -16)

    -25000=7FB8(base -16)

    应该是

    30000 -2

    -20000 -7

    28800 -16

    -25000 -16

    30000=1101101010111000(base -2)

    -20000=263526(base -7)

    28800=19180(base -16)

    -25000=7FB8(base -16)

  • 0
    @ 2008-10-11 12:05:06

    不用搜索的。。

    用通常的数制转换就可以了(请无视Hint里的话呵呵。)。。不过要自己写个mod和div就是了。。。

    还有一个。。。

    遇到0的情况貌似要输出0=(base -XX),

    我第一次还专门考虑了这个问题写0=0(base -XX),结果错了。。。无语了。。。

    我的程序:

    const numchr:array[0..20] of char = ('0','1','2','3','4','5',

    '6','7','8','9','A',

    'B','C','D','E','F',

    'G','H','I','J','K');

    var a:array[0..30] of longint;

    n,base:longint;

    i,j,t:longint;

    function MyDiv(a,b:longint):longint;

    begin

    if a>0 then exit(-(a div (-b)))

    else begin

    if ((-a) mod (-b))0 then

    exit(((-a) div (-b))+1)

    else

    exit((-a) div (-b));

    end;

    end;

    function MyMod(a,b:longint):longint;

    begin

    exit(a-b*MyDiv(a,b));

    end;

    begin

    while not eof do begin

    readln(n,base);

    // writeln(myDiv(n,base));exit;

    write(n,'=');

    fillchar(a,sizeof(a),0);

    for i:=0 to 30 do begin

    if n=0 then begin

    t:=i;

    break;

    end;

    a[i]:=MyMod(n,base);

    n:=MyDiv(n,base);

    end;

    //if t=0 then write(0)

    // else begin

    for j:=t-1 downto 0 do begin

    write(numchr[a[j]]);

    end;

    // end;

    write('(base ',base,')');

    writeln;

    end;

    end.

  • 0
    @ 2008-10-11 10:29:17

    ...

  • 0
    @ 2008-10-10 21:08:28

    第五个数据。。。

    谁能说下

  • 0
    @ 2008-10-10 19:28:13

    我用迭代加深+上下界剪枝过了。。

    第一次90,第二次原封不动的程序100。。

  • 0
    @ 2008-10-10 19:01:48

    诡异的第五组数据……

  • 0
    @ 2008-10-09 19:35:31

    第一个样例,在-2进制数后再加一个0

  • 0
    @ 2008-10-09 18:27:13

    无语了……样例数据错的太离谱&、……

  • 0
    @ 2008-10-09 18:16:52

    ???

  • 0
    @ 2008-10-09 14:45:25

    比较靠下。。。

  • 0
    @ 2008-10-08 20:52:55

    迭代加深。。

    为什么是一千组??

信息

ID
1465
难度
6
分类
其他 | 数学 点击显示
标签
递交数
1229
已通过
330
通过率
27%
被复制
11
上传者