100.pas

来自「3n+1的算法 acm程序设计大赛的练习题目」· PAS 代码 · 共 41 行

PAS
41
字号
var
  i,j: longint;

function cycle(n:longint):longint;
var
  k:longint;
begin
  k:=1;
  while n<>1 do
  begin
    if odd(n) then n:=3*n+1 else n:=n div 2;
    inc(k);
  end;
  cycle:=k;
end;

function solve(i,j:longint):longint;
var
  k:longint;
  max,l:longint;
begin
  max:=0;
  for k:=i to j do
  begin
    l:=cycle(k);
    if l>max then max:=l;
  end;
  solve:=max;
end;

begin
  while not eof(input) do
  begin
    readln(i, j);
    write(i,' ', j,' ');
    if i < j then writeln(solve(i,j))
             else writeln(solve(j,i));
  end;
end.

⌨️ 快捷键说明

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