1樓:聽不清啊
樓主要求的窮舉法:
#include
void main(void)
printf("%d",y);}
2樓:莫給老子拖堂了
建議先讓x》y(不是的就交換),然後讓k=x,if(y%k==0)是就退出,不是就k--;
c語言求最大公約數的**
3樓:匿名使用者
你的**,主要的錯誤在for迴圈裡的判斷條件,應該是a%i!=0&&b%i!=0 不等號;但是,是了很久,發現這樣的演算法或者說思路也是錯誤的!
因為你這樣找到的只是兩個數的最小公約數,而非最大公約數的,你可以用原來的想法,i 從 兩個數中較小者那個從大到小去迴圈,從而找到兩個數的公約數,也就是(從大到小)倒這來找公約數;或者建議你考慮輾轉相除法,輾轉相除法的思路是這樣的:若 m和n為這連個正整數,有:當m>n,m與n 的最大公約數等於 n 與 m%n的最大公約數當n=0 ,m與 n 的最大公約數等於 m,以下是**,使用for語句:
#include
#include
int main()
elsefor(r=b;r!=0;)
printf("%d 和 %d 的最大公約數是:%d",a,b,m);
system("pause");
return 0;
4樓:匿名使用者
你在用for迴圈的時候錯了。你的fou迴圈停止的條件是:a%i==0&&b%i==0;在這不之後呢,i要加1;也就是最後i的值是這兩個數的最小公約數+1。
你可以運用輾轉相除的方法來求最大公約數。也就是樓上所用的方法。
c語言求最大公約數
5樓:樂跑小子
#include ""
int main()
while(d2!=0);
printf("最大公約數是:%d",d1);
/遞迴法。#include ""
int fun(int d1,int d2)int main()
6樓:糜廣英抄燕
沒看出錯來,無非是當a,b成倍比關係時不顯示而已,當不成倍比時,結果是0而已。
這程式,唉~~~
7樓:
while(m)
這個迴圈有問題,不管你輸入的是哪兩個數(m>n),到最後都會產生 n=r=0 的情況,即會出現 m%0 ,0是不能作除數的。
下面是乙個例子,你看看行不:
#include
#include
int main()
8樓:網友
---已啟動生成: 專案: a, 配置: debug win32 --
正在編譯。正在鏈結。
生成日誌儲存在「file://d:\申帥中a - 0 錯誤,0 警告。
--完成 --
生成: 1 已成功, 0 已失敗, 0 已跳過沒有錯啊。
9樓:祝略光孤晴
#include
voidmain()
if(i==1)
printf("no");
把你的給你寫全了。
你試試看看~~~
另外附上乙個改良版~~~
#include
voidmain()
if(i==1)
printf("no");}
如何求最大公約數,怎麼求最大公約數 舉幾個簡單的例子
大數。整除時的除數就是最大公約數。舉例 222 407求最大公約數 222 407 407除以222餘數185 222 185 222除以185餘數37 37 185 185除以37餘數0 所以最大公約數為37 39 24求最大公約數 39 24 39 24,餘數15 15 24 24 15,餘數9...
如何求高精度數的最大公約數
可以有這樣的乙個演算法。不斷的用迴圈 把小的那個數 做為除數 然後減 直到都除盡為止。我用c語言您的問題 include void main int a,b,c,d,e a,b為要求公約數的兩個整數。printf 輸入這兩個整數 scanf d d a,b c a d b while c d c d ...
最大公因數和最小公倍數的區別,最大公約數和最小公倍數有什麼區別
1.最大公因數指某幾個整數共有因子中最大的一個。不過有時候我們叫最大公約數。舉個例子 12 1 2 2 3 3 4 2 6 1 12,那麼我們就稱1 2 3 4 6 12為12的因數 所以計算12和18的最大公約數方法如下 18 1 2 3 3 2 9 3 6 1 18,那麼18的因數有 1 2 3...