做了一个程序来查找最大公约数,但由于某种原因,函数在重复。
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.