c語言程式設計,c語言程式設計 求最大公約數

2021-03-22 07:06:36 字數 4516 閱讀 9162

1樓:匿名使用者

把倒數第三句「i=i+1」去掉就可以得到正確的結果了,因為break之後不會執行i--操作了

或者使用輾轉相除的方法:

#include

void main()

temp = a%b;

while(temp)

printf("%d,%d的最大公約數為: %d",m,n,b);

printf("%d,%d的最小公倍數為: %d",m,n,m*n/b);}

2樓:靜楓緣

//輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求288和123的最大公約數為例,操作如下:288÷123=2餘42 123÷42=2餘3942÷39=1餘3 39÷3=13所以3就是288和123的最大公約數。

//#include

int main()

printf("%d\n",c);

return 0;

3樓:匿名使用者

基本原理如下:

用歐幾里德演算法(輾轉相除法)求兩個數的最大公約數的步驟如下:

先用小的一個數除大的一個數,得第一個餘數;

再用第一個餘數除小的一個數,得第二個餘數;

又用第二個餘數除第一個餘數,得第三個餘數;

這樣逐次用後一個數去除前一個餘數,直到餘數是0為止。那麼,最後一個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。

例如求1515和600的最大公約數,

第一次:用600除1515,商2餘315;

第二次:用315除600,商1餘285;

第三次:用285除315,商1餘30;

第四次:用30除285,商9餘15;

第五次:用15除30,商2餘0。

1515和600的最大公約數是15。

4樓:匿名使用者

輾轉相除法還是首選的方法啊、它有效的減少了運算的時間複雜度。。

5樓:小童鞋_成

ddddddddddddddd

6樓:

int getcd(int u,int v)

return u;}

7樓:凌風

#include

void main()

{int m,n,k;

printf(

c語言程式設計如何求最大公約數?

8樓:河蟹蛇薈

最大公約數演算法:

(1)輾轉相除法

兩整數a和b:

① a%b得餘數c

② 若c=0,則b即為兩數的最大公約數,結束③ 若c≠0,則a=b,b=c,再回去執行①(2)相減法

兩整數a和b:

① 若a>b,則a=a-b

② 若a③ 若a=b,則a(或b)即為兩數的最大公約數,結束④ 若a≠b,則再回去執行①

(3)窮舉法:

① i= a b中的小數

② 若a,b能同時被i整除,則i即為最大公約數,結束③ i--,再回去執行②

用c語言求最大公約數。

9樓:很多很多

1、新建一個c語言源程式,這裡使用visual c++6.0的軟體:

2、從鍵盤中輸入兩個正整數a和b。取兩個數a,b中的較小值存放到變數n中。從兩個數a和b中的較小數開始逐個減小1,尋找能整除a和b的整數,第一個找到的整數即整數a和b的最大公約數,最後將找到的結果輸出即可完成程式的編寫:

3、對源程式編譯執行,測試輸入4、6,得到最大公約數2說明程式是正確的,以上就是用c語言求最大公約數的過程:

10樓:東風冷雪

#include

int zdg(int n);

int main()

int zdg(int n)

return m;}

11樓:水墨塵君

#include

void main()

{int m,n,r,t;

scanf("%d,%d",&m,&n);

if(m

如果有疑問

,歡迎私聊我

c語言程式設計,求最大公約數

12樓:匿名使用者

#include

void main()

{int zdgy(int m,int n);

int x,y;

printf(

13樓:匿名使用者

#include

#include

int main()

i = a; j = b;

while (j != 0)

printf("最大公約數%d ", i);

printf("最小公倍數%d", (a*b)/i);

printf("\n");

return 0;}

c語言程式設計求最大公約數和最小公倍數

14樓:刀無極啊

#include

int main()

else

res=dividend%divisor;

while(res!=0)//迴圈體是三條語句dao,不加大括號內迴圈只執行一條容語句

printf("%d",divisor);

}else

printf("error!\n");

return 0;

}兩數相乘除以最大公約數就是最小公倍數

15樓:愛笑的

你用while,res沒有!=0,後賦值,但是沒退出迴圈啊,你這個成死迴圈了

16樓:滕鴻蒙飛躍

#include

intgcm(int

m,int

n)if(r==0)

returnn;}

intlcm(int

m,int

n,int

p)main()

17樓:睢奇姒乾

intm,n,i,j;

注意int型整數的取值範圍,上限大概是6萬多,

100000顯然溢位,結果就不對了,可以考慮換成long、double型等修飾

18樓:亓囡亥德壽

a=b;

b=c;

c=a%b; //這個位置寫錯了,當上面的b=c=0時,這裡會除0錯將這個放到a=b前面就ok了

c語言程式設計 求最大公約數!

19樓:陳兵

則根本不是求最大公約數,你是判斷m,n中最大的值進行輸出而已

參見

由各種不同方法的**

c語言程式設計如何求最大公約數

20樓:匿名使用者

源程式如下:

#include

#include

int fun_y(int,int);

int main()

int fun_y(int x,int y)return i;

}忙了半天,**分採納,謝謝了

21樓:匿名使用者

//常規方法

#include "stdio.h"

int main()

while(d2!=0);

printf("最大公約數是:%d",d1);

}//遞迴法

#include "stdio.h"

int fun(int d1,int d2)int main()

22樓:董俊錕

#include

int main()

if(num1 < num2)

while(b > 0)

printf("最大公約數是%d\n",a);

return 0;}

23樓:匿名使用者

#include

int main()

}printf("\n%d和%d的最大公約數是 %d",m,n,max);

return 0;

}int min(int x,int y)這是源**。

如何用c語言來編寫:求最大公約數和最小公倍數程式

24樓:匿名使用者

#include

void main()

printf("%d和%d的最大公約數是%d,%d和%d的最小公倍數是%d。",m,n,i,m,n,j);}

C語言程式設計,c語言程式設計。

判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea...

c語言程式設計求思路,C語言程式設計 ,求思路

我的思想與一樣,就是把丁俊暉最後的點的對稱點找到。如圖示,x1 y1 點是 x1,y1 對於右邊牆面的對稱點,當有左右兩面牆的反射是就計算兩面的反射。前後牆同左右牆,圖中 x0 y0 就是 x0,y0 對於前後牆的反射點。而 x1 y1 是我把丁俊暉運動路線還原成直線後,丁俊暉的位置。現在我們就可以...

求c語言程式設計書籍,求C語言程式設計書籍

譚浩強編的 c程式設計 地址 譚浩強編的 c程式設計 求c語言初學者書籍推薦 1.基礎 c語言入門,初學,程式設計基礎 c語言程式設計 現代方法 第2版 深入理解計算機系統 修訂版或第2版 c語言程式設計 第2版 程式設計師修煉之道 c和指標 c primer plus 入門首選 高質量程式設計指南...