188 条题解
-
0zhaoyifeng LV 8 @ 2009-08-29 13:04:22
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
提交了三次
我好失败呀 -
02009-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. -
02009-08-26 21:57:11@
这道提练高精度吗??
-
02009-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 -
02009-08-11 09:59:19@
顶LS的yuhc神牛
-
02009-08-10 22:15:31@
太水了!!!
b:=(a mod 65536)*65536+(a div 65536);
楼下的思路太诡异了!!!! -
02009-08-10 17:29:03@
额,太水了。思路可以先把十进制转换成二进制,然后再交换i和i+16,最后再转回去即可。楼下的思路很奇怪……
-
02009-08-07 20:57:14@
var a,b:int64;
begin
readln(a);
b:=(a mod 65536)*65536+(a div 65536);
writeln(b)
end.水死了~~五行的程序,一遍AC
-
02009-08-06 19:53:24@
1.转换为二进制
2.补位
3.交换
4.转化为十进制
建议使用模块化处理 -
02009-08-05 12:39:34@
#include
int main() {
unsigned long n;
scanf("%lu",&n);
printf("%lu",(n&65535)16);
return 0;
} -
02009-08-05 12:05:02@
var
n:dword;
begin
readln(n);
writeln(swap(n));
end.无敌的swap函数
-
02009-08-04 21:07:04@
Dword很方便,一个读readln(n)和一个writeln(swap(n))就OK了
-
02009-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. -
02009-08-04 16:53:16@
位运算万岁!
-
02009-08-03 17:00:16@
位运算秒杀!
var
n:dword;
begin
readln(n);
writeln((n shr 16)or(n shl 16));
end. -
02009-08-01 13:17:58@
无敌的位运算..~~
-
02009-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秒杀……
-
02009-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 有效耗时:0msvar 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. -
02009-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 有效耗时:0msvar 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. -
02009-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.