[問題] 求最大公因數,三個整數

看板C_and_CPP (C/C++)作者 (Leon)時間16年前 (2009/04/21 19:53), 編輯推噓5(5014)
留言19則, 5人參與, 最新討論串1/1
#include<iostream> using namespace std; void func(int c); int main() { int num1, num2, num3; cout << "請輸入第一個整數 : "; cin >> num1; cout << "請輸入第二個整數 : "; cin >> num2; cout << "請輸入第三個整數 : "; cin >> num3; int a,b=num2,c=num3,d=num1%num2%num3; while (d!=0) { a=b; b=c; c=d; d=a%b%c; } func(c); } void func(int c) { cout << "最大公因數為 " << c << endl; system("pause"); } 請問我哪裡寫錯了 我輸入 18 30 36 她顯示的最大公因數卻是 12 我思考很久還是不知道錯在哪裡 希望會的人可以教我一下 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.85.186

04/21 20:04, , 1F
三個數的最大公因數不是其中兩個的最大公因數的結果,
04/21 20:04, 1F

04/21 20:04, , 2F
再去和第三個數求一次最大公因數就好了嗎??
04/21 20:04, 2F

04/21 20:05, , 3F
只是覺得你的code好像是把三個數攪在一起算....@_@"
04/21 20:05, 3F

04/21 20:31, , 4F
我沒看過這樣的輾轉相除就是了.. 囧
04/21 20:31, 4F

04/21 20:32, , 5F
V大,那我應該要如何改才會正確??
04/21 20:32, 5F

04/21 20:33, , 6F
因為我想了,3小時還是不知道該如改 囧rz
04/21 20:33, 6F

04/21 20:34, , 7F
GCD(GCD(a,b),c) ?
04/21 20:34, 7F

04/21 20:48, , 8F
樓上已經寫了, 不用function, 就分兩個迴圈各跑一次吧.
04/21 20:48, 8F

04/21 20:49, , 9F
把書上交兩數輾轉相除法的code copy再改一改就是了@_@"
04/21 20:49, 9F

04/21 21:20, , 10F
我會用function,試題目要求
04/21 21:20, 10F

04/21 21:21, , 11F
因為不想等到下禮拜才講解所以先問(今天期中考題目)
04/21 21:21, 11F

04/21 21:27, , 12F
我先來思考一下n大寫的
04/21 21:27, 12F

04/21 21:42, , 13F
看來我上課太混了,n大都講了,結果我還是不知如何改...
04/21 21:42, 13F

04/21 22:12, , 14F
你會用func是題目要求?? 問題是你的寫法不太像是題目希
04/21 22:12, 14F

04/21 22:12, , 15F
望的, 如果題目是寫一個func求最大公因數, 你原來的寫法
04/21 22:12, 15F

04/21 22:13, , 16F
只是把已經算好的數值印出來, func不是求值用的....
04/21 22:13, 16F

04/21 22:13, , 17F
至於用while做輾轉相除法應該是非常常見的例子了...
04/21 22:13, 17F

04/21 22:14, , 18F
參考n大的方式改一下應該就有了才對....@_@"
04/21 22:14, 18F

04/22 11:04, , 19F
推樓上 你的func只是做輸出 應該不是題目想要的..
04/22 11:04, 19F
文章代碼(AID): #19xREsIn (C_and_CPP)
文章代碼(AID): #19xREsIn (C_and_CPP)