高精度 pascal 2的n次幂输入n,求2的n次方,苦逼地超时了.【数据范围】对于20%的数据,1≤N≤1,000;对于100%的数据,1≤N≤2^20.【限制】时间限制:1s,内存限制:256Mprogram ex1;var s1,s2:ansistring; w1,w2,w3,i
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 06:13:24
高精度 pascal 2的n次幂输入n,求2的n次方,苦逼地超时了.【数据范围】对于20%的数据,1≤N≤1,000;对于100%的数据,1≤N≤2^20.【限制】时间限制:1s,内存限制:256Mprogram ex1;var s1,s2:ansistring; w1,w2,w3,i
高精度 pascal 2的n次幂
输入n,求2的n次方,苦逼地超时了.
【数据范围】
对于20%的数据,1≤N≤1,000;
对于100%的数据,1≤N≤2^20.
【限制】
时间限制:1s,内存限制:256M
program ex1;
var s1,s2:ansistring;
w1,w2,w3,i,j,k,x,n:longint;
a,b,c:array[1..100000]of longint;
begin
readln(n);
s1:='1';
s2:='2';
for k:=1 to n do
begin
w1:=length(s1);
w2:=length(s2);
for i:=1 to w1 do a[w1-i+1]:=ord(s1[i])-48;
for i:=1 to w2 do b[w2-i+1]:=ord(s2[i])-48;
for i:=1 to w1 do
for j:=1 to w2 do
begin
c[i+j-1]:=c[i+j-1]+a[i]*b[j];
c[i+j]:=c[i+j]+c[i+j-1] div 10;
c[i+j-1]:=c[i+j-1] mod 10;
end;
w3:=w1+w2;
while (c[w3]=0)and(w3>1) do dec(w3);
s1:='';
for i:=w3 downto 1 do s1:=s1+chr(c[i]+48);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fillchar(c,sizeof(c),0);
end;
writeln(s1);
end.
高精度 pascal 2的n次幂输入n,求2的n次方,苦逼地超时了.【数据范围】对于20%的数据,1≤N≤1,000;对于100%的数据,1≤N≤2^20.【限制】时间限制:1s,内存限制:256Mprogram ex1;var s1,s2:ansistring; w1,w2,w3,i
var
n,i:longint;
a:array[1..10000]of longint;
begin
readln(n);
a[1]:=1;
for i:=2 to n do
if i mod 2=1 then a[i]:=a[i-1]
else a[i]:=a[i-1]+a[i div 2];
writeln(a[n]);
end.