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

📄 ac1158.pas

📁 同济大学 Online在线题库 AC源代码合集 程序设计竞赛必看资料
💻 PAS
字号:
program tju1158;
const
  maxn=100000;
var
  count:array[0..maxn]of byte;
  last:array[1..maxn]of word;
  n,i:longint;
procedure back(x:longint);
  begin
    if count[x]=1 then
      write(last[x])
    else begin
      back(x-sqr(last[x]));
      write(' ',last[x]);
    end;
  end;
begin
  fillchar(count,sizeof(count),255);count[0]:=0;
  for n:=1 to maxn do begin
    for i:=1 to trunc(sqrt(n)) do
      if count[n-i*i]<count[n] then begin
        count[n]:=count[n-i*i];
        last[n]:=i;
      end;
    inc(count[n]);
  end;

  repeat
    read(n);
    writeln(count[n]);
    repeat
      write(last[n]);
      dec(n,sqr(last[n]));
      if n=0 then writeln else write(' ');
    until n=0;
  until seekeof;
end.

⌨️ 快捷键说明

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