作业帮 > 综合 > 作业

pascal 题,输入5个正整数求它们的最大公约数.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 06:28:48
pascal 题,输入5个正整数求它们的最大公约数.
另外,解决的方法最好用函数!
主要有三个问题,一个是你的YUSHU函数应该用值参而不是用形参,就是说要把VAR去掉;还有就是你的循环体里A:=B是不对的,想一下,如果这样赋值,一进循环体,A,B就相等了,显然不对,应该定义一个中间变量T,先把a的值赋给T,再处理,防止A的值被覆盖;还有就是不知为什么突然冒出一个X.
修改如下
function gcd(a,b:longint):longint;
var
t:longint;
begin
repeat
t:=a;
a:=b;
b:=t mod b;
until b=0;
exit(a);
end;
还有一种递归的写法
function gcd(a,b:longint):longint;
begin
if b=0 then exit(a)
else exit(gcd(b,a mod b));
end;