關於pascal語言

2022-12-20 07:26:23 字數 699 閱讀 9290

1樓:

這個寫的不夠全面,不過演算法思路是正確的

這是用的輾轉相除法

例如24和60的最大公約數是6

那麼兩數應該都是6的倍數

那麼兩數相除所得的餘數也應該是6的倍數

即12為6的倍數

與這個一樣

設a與b的最大公約數是k

a>b那麼a mod b也一定是k的整數倍

然後用迴圈算直到b=0,此時a的值就是k

不懂得地方可以問我,真誠的幫助你解決問題

2樓:

這是輾轉相除法,要遞迴的,你打錯了,至於演算法你要看看《初等數論》

3樓:匿名使用者

輾轉相除法是求最大公約數最簡單的方法,也是最煩的方法。

題目中這一步應放在while或repeat..until語句中。解釋可以用f7一步一步推。

附我編的(我用a,b,r):

vara,b,r:integer;

begin

readln(a,b);

r:=a mod b;

while r<>0 do

begin

a:=b;

b:=r;

r:=a mod b;

end;

writeln(b);

end.

b就是最大公約數

pascal語言字串題目

1.program sdf var a string s,i,j longint begin readln a while a do begin s 0 j 0 for i 1 to length a doif a i in 0 9 then j j 10 ord a i ord 0 else be...

PASCAL程式設計問題C語言程式設計問題

program tm1 var a,b array 1.1000 of integer i,j,k,m integer begin k 1 for i 2 to 1000 do begin for j 2 to i 1 do begin if i mod j 0 then begin a i a i...

pascal回溯pascal回溯

var a array 1.20,1.20 of integer s set of 1.20 min,sum,n,i,j integer procedure work r integer var i integer begin for i 1 to n do if not i in s then b...