求出几个数的最大公约数 pascal
给你n(1<=n<=50)个正整数,要求求出它们的最大公约数。(所有的整数的范围都在longint范围)input3182730onput3...
给你n(1 < = n < = 50) 个正整数,要求求出它们的最大公约数。(所有的整数的范围 都在longint范围)
input
3
18 27 30
onput
3 展开
input
3
18 27 30
onput
3 展开
展开全部
program abc;
var tmp,a,b,n:longint;
procedure swap(var a,b:longint);
begin
tmp:=a;a:=b;b:=tmp;
end;
function gcd(a,b:longint):longint;
begin
if b=0 then gcd:=a
else gcd:=gcd(b,a mod b);
end;
begin
readln(n);
read(a,b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
while not eof do
begin
read(b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
end;
writeln(a);
end.
var tmp,a,b,n:longint;
procedure swap(var a,b:longint);
begin
tmp:=a;a:=b;b:=tmp;
end;
function gcd(a,b:longint):longint;
begin
if b=0 then gcd:=a
else gcd:=gcd(b,a mod b);
end;
begin
readln(n);
read(a,b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
while not eof do
begin
read(b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
end;
writeln(a);
end.
展开全部
function gcd(a,b:longint):longint;
begin
if b=0 then exit(a);
exit(b,a mod b);
end.
begin
if b=0 then exit(a);
exit(b,a mod b);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var s,n,i,k:longint;
function gcd(a,b:longint):longint;{辗转相除}
begin
if b=0 then exit(a);
exit(b,a mod b);
end.
begin
readln(n);
read(s);
for i:=1 to n-1 do begin
read(k);
s:=gcd(s,k);
end;
writeln(s);
end.
function gcd(a,b:longint):longint;{辗转相除}
begin
if b=0 then exit(a);
exit(b,a mod b);
end.
begin
readln(n);
read(s);
for i:=1 to n-1 do begin
read(k);
s:=gcd(s,k);
end;
writeln(s);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询