题解

187 条题解

  • 0
    @ 2009-08-28 09:48:42

    VIJOS不让用数学库?无语

    还得这么写~~~

    var

    n,i,t:longint;

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

    s:real;

    begin

    read(n);

    for i:=1 to 32 do

    begin

    a[i]:=n mod 2;

    n:=n div 2;

    end;

    for i:=32 downto 17 do

    begin

    t:=a[i];

    a[i]:=a;

    a:=t;

    end;

    for i:=32 downto 1 do

    s:=s+a[i]*exp((i-1)*ln(2));

    write(s:0:0);

    end.

  • 0
    @ 2009-08-26 21:57:11

    这道提练高精度吗??

  • 0
    @ 2009-08-19 19:43:28

    编译通过...

    ├ 测试数据 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-08-11 09:59:19

    顶LS的yuhc神牛

  • 0
    @ 2009-08-10 22:15:31

    太水了!!!

    b:=(a mod 65536)*65536+(a div 65536);

    楼下的思路太诡异了!!!!

  • 0
    @ 2009-08-10 17:29:03

    额,太水了。思路可以先把十进制转换成二进制,然后再交换i和i+16,最后再转回去即可。楼下的思路很奇怪……

  • 0
    @ 2009-08-07 20:57:14

    var a,b:int64;

    begin

    readln(a);

    b:=(a mod 65536)*65536+(a div 65536);

    writeln(b)

    end.

    水死了~~五行的程序,一遍AC

  • 0
    @ 2009-08-06 19:53:24

    1.转换为二进制

    2.补位

    3.交换

    4.转化为十进制

    建议使用模块化处理

  • 0
    @ 2009-08-05 12:39:34

    #include

    int main() {

      unsigned long n;

      scanf("%lu",&n);

      printf("%lu",(n&65535)16);

      return 0;

    }

  • 0
    @ 2009-08-05 12:05:02

    var

    n:dword;

    begin

    readln(n);

    writeln(swap(n));

    end.

    无敌的swap函数

  • 0
    @ 2009-08-04 21:07:04

    Dword很方便,一个读readln(n)和一个writeln(swap(n))就OK了

  • 0
    @ 2009-08-04 20:20:48

    program gdwjh;

    var

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

    n,h,s:int64;

    i,j,k:integer;

    begin

    assign(input,'gd.in');

    reset(input);

    assign(output,'gd.out');

    rewrite(output);

    readln(n);

    while n>0 do

    begin

    inc(i);

    a[i]:=n mod 2;

    n:=n div 2;

    end;

    k:=i;

    for i:=k+1 to 32 do

    a[i]:=0;

    for i:=1 to 16 do

    begin

    s:=1;

    for j:=1 to i+15 do

    s:=s*2;

    h:=h+a[i]*s;

    end;

    for i:=17 to 32 do

    begin

    s:=1;

    for j:=1 to i-17 do

    s:=s*2;

    h:=h+a[i]*s;

    end;

    writeln(h);

    close(input);

    close(output);

    end.

  • 0
    @ 2009-08-04 16:53:16

    位运算万岁!

  • 0
    @ 2009-08-03 17:00:16

    位运算秒杀!

    var

    n:dword;

    begin

    readln(n);

    writeln((n shr 16)or(n shl 16));

    end.

  • 0
    @ 2009-08-01 13:17:58

    无敌的位运算..~~

  • 0
    @ 2009-07-28 20:37:28

    编译通过...

    ├ 测试数据 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-07-27 22:27:45

    一次AC

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var n:int64;

    s:string;

    a:integer;

    b:char;

    function power(a,b:longint):int64;

    var c:longint;

    begin

    power:=1;

    for c:=1 to b do

    power:=power*a;

    end;

    begin

    read(n);

    s:=binstr(n,32);

    for a:=1 to 16 do

    begin

    b:=s[a];

    s[a]:=s[16+a];

    s[16+a]:=b;

    end;

    n:=0;

    for a:=32 downto 1 do

    begin

    if s[a]='1' then

    n:=n+power(2,32-a);

    end;

    write(n);

    end.

  • 0
    @ 2009-07-23 11:10:24

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var n,b,w,e:int64; q,i,j:integer; a:array[0..1000]of longint;

    st3,st2,st:string;

    begin

    readln(n);

    while n0 do

    begin

    inc(q);

    a[q]:=n mod 2;

    n:=n div 2;

    end;

    for i:=q downto 1 do st[q-i+1]:=chr(a[i]+ord('0'));

    st2:='';

    for i:=1 to q do st2:=st2+st[i];

    for i:=1 to 32-q do st2:='0'+st2;

    st3:='';

    for i:=17 to 32 do st3:=st3+st2[i];

    for i:=1 to 16 do st3:=st3+st2[i];

    for i:=1 to 32 do a[i]:=ord(st3[33-i])-ord('0');

    w:=0;

    for i:=1 to 32 do

    begin

    e:=a[i]; if i=1 then if e0 then e:=1 else e:=0;

    if e0 then for j:=1 to i-1 do e:=e*2;

    w:=w+e;

    end;

    write(w);

    end.

  • 0
    @ 2009-07-19 16:45:19

    program vi1201;

    var a,b:array [1..32] of integer;

    m,n,t:int64;

    i,j:longint;

    begin

    readln(m);

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

    fillchar(b,sizeof(b),0);

    for i:=32 downto 1 do

    begin

    a[i]:=m mod 2;

    m:=m div 2;

    end;

    j:=17;

    for i:=1 to 16 do

    begin

    b[i]:=a[j];

    b[j]:=a[i];

    inc(j);

    end;

    t:=1; n:=0;

    for i:=32 downto 1 do

    begin

    n:=n+(b[i]*t);

    t:=t*2;

    end;

    writeln(n);

    readln;

    end.

  • 0
    @ 2009-07-17 09:06:11

    program dsa;

    var n,s,t:int64;

    z,i,j:integer;

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

    begin

    read(n);

    z:=0;

    repeat

    inc(z);

    a[z]:=n mod 2;

    n:=n div 2;

    until n=0;

    for i:=z+1 to 32 do a[i]:=0;

    for i:=1 to 16 do

    begin

    t:=a[i];

    a[i]:=a[32-i+1];

    a[32-i+1]:=t;

    end;

    for i:=1 to 16 do

    begin

    t:=a[i];

    a[i]:=a;

    a:=t;

    end;

    s:=0;

    for i:=1 to 31 do

    begin

    t:=1;

    for j:=1 to 32-i do t:=t*2;

    s:=s+a[i]*t;

    end;

    if a[32]=1 then write(s+1)

    else write(s);

    end.

    农夫山泉

信息

ID
1201
难度
3
分类
模拟 点击显示
标签
(无)
递交数
3699
已通过
1824
通过率
49%
被复制
13
上传者