⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mason.pas

📁 PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料
💻 PAS
字号:
program mason(input,output);
var
  n:longint;
  i,j:longint;
  out:array[1..500] of longint;
  sta:array[1..1000] of longint;

  procedure solve(n:longint);{用二分法求2的n次幂}
    begin
      if n=0 then
        exit;
      solve(n div 2);   {二分}
      for i:=1 to 500 do
        for j:=1 to 500 do
          if n mod 2=0
            then   {如果是偶数,就计算平方}
              sta[i+j-1]:=sta[i+j-1]+out[i]*out[j]
            else   {是奇数就计算平方并且*2}
              sta[i+j-1]:=sta[i+j-1]+out[i]*out[j]*2;
      for i:=1 to 500 do
        begin
          out[i]:=sta[i] mod 10;
          sta[i+1]:=sta[i+1]+sta[i] div 10;
        end;
      for i:=1 to 1000 do   sta[i]:=0
    end;

begin
  assign(input,'mason.in');
  assign(output,'mason.out');
  reset(input);
  rewrite(output);
  readln(n);
  writeln(trunc(ln(2)/ln(10)*n)+1);{输出位数,用对数算后+1}
  out[1]:=1;
  solve(n);
  for i:=500 downto 2 do
    begin
      write(out[i]);
      if i mod 50=1 then  writeln{换行}
    end;
  writeln(out[1]-1);
  close(input);
  close(output)
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -