首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

HELP!如何写才能得到最大公约数?please

2012-03-13 
HELP!怎么写才能得到最大公约数?please!这是我写的代码,但怎么都不对……汗!!!请各高手就可怜可怜我这个菜鸟

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;

热点排行