为什么这个程序中的功能重复?帕斯卡

  • 本文关键字:功能 帕斯卡 程序 pascal
  • 更新时间 :
  • 英文 :


做了一个程序来查找最大公约数,但由于某种原因,函数在重复。

var p,q:integer;
function nod(x,y: integer):integer;
begin
while y<>0 do nod(y,x mod y);
result:=x;
end;
begin
write('Enter two integers: ');
read(p,q);
write(nod(p,q));
end.

您没有更新 y 变量,并且循环永远不会结束。

或:

var p,q:integer;
function nod(x,y: integer):integer;
begin
while y<>0 do 
  begin
    y:= nod(y,x mod y);
  end;
result:=x;
end;
begin
write('Enter two integers: ');
read(p,q);
write(nod(p,q));
end.

最新更新