HELP!怎么写才能得到最大公约数?please!
这是我写的代码,但怎么都不对……汗!!!请各高手就可怜可怜我这个菜鸟吧。please!please!please!
var a,b,c,d,temp : integer;
c := strtoint(edit1.Text);
d := strtoint(edit2.Text);
if c > d then
begin
a := c;
b := d;
end
else if c < d then
begin
a := d;
b := c;
end;
while r <> 0 do
begin
r := a mod b;
a := b;
b := r;
end;
(我只会这么多了,请各高手多多指教啊。)
[解决办法]
给段代码你直接用吧。
function GetGCD(A, B: integer): integer;
procedure SWAP(var iA, iB: integer);
var
iC: integer;
begin
iC := iA;
iA := iB;
iB := iC;
end;
var
iA, iB, iC : integer;
begin
if A = 0 then
begin
Result := B;
end else
begin
if B = 0 then
begin
Result := A;
end else
begin
if A = B then
begin
Result := A;
end else
begin
iA := A;
iB := B;
if iB > iA then
Swap(iA, iB);
iC := iA mod iB;
while iC > 0 do
begin
iA := iB;
iB := iC;
iC := iA mod iB;
end;
Result := iB;
end;
end;
end;
end;