制定了一个寻找最大公约数的程序,但由于某种原因,该函数正在重复。
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.
答案 0 :(得分:1)
您没有更新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.