以下是一個算最大公因數和最小公倍數的程式求各位大大說明
文章推薦指數: 80 %
printf("最大公因數為%d\n",a); printf("最小公倍數為%d\n",(num/a)); } } int main(void) { int a,b; int c; printf("請輸入a,b求最大公因數及最小公倍數:");
1
求大師解釋
c
eit
2019-12-2621:04:35‧3545瀏覽
以下是一個算最大公因數和最小公倍數的程式
求各位大大說明
#include
已達邀請上限
邀請回答
{{result.user.nickname}}
{{result.user.account}}
已邀請的邦友{{invite_list.length}}/5
取消邀請
{{invite.nickname}}
{{invite.account}}
關閉
登入發表討論
5個回答
舊至新
新至舊
最高Like數
6
DarwinWatterson
iT邦研究生1級‧2019-12-2623:47:36
最佳解答
直接舉例說明給你了解:
求(6,15)與[6,15]
intmain(void){
inta,b;
intc;
printf("請輸入a,b求最大公因數及最小公倍數:");
scanf("%d%d",&a,&b);
就只是從螢幕讀進你key入的a=6b=15
再來看
t(a,b);
實際就是讓電腦處理
t(6,15);
進入函式後,先定義一個num變數=6x15
理由是「兩數的乘積/最大公因數=最大公倍數」
數學恆等式這裡不推導,詳情打電話問「國中老師」吧!
if(a==0||b==0){
printf("Numbercannotbe0.\n");
return;
}
由於6與15都大於0,上面這段「防呆」跳過不執行。
最後來看關鍵的部分
while(a>0&&b>0){
if(a>b)
a=a%b;
else
b=b%a;
}
因爲b>a執行else區段
所以第一次進入while迴圈的結果
a=6b=3
不過因爲a與b都大於0且a>b執行if區段
所以第二次進入while迴圈的結果
a=0b=3
a變0後就跳出while迴圈了!(此例迴圈判斷3次)
if(a==0){
printf("最大公因數為%d\n",b);
printf("最小公倍數為%d\n",(num/b));
}else{
printf("最大公因數為%d\n",a);
printf("最小公倍數為%d\n",(num/a));
}
因爲a=0所以印出
最大公因數為3
最小公倍數為30
以上就是電腦計算的思維,可以試試a=15b=6
依照這個步驟多試試
這真的是入門程式必需經歷的過程啊!
你試過就是你的了!
回應
分享
檢舉
登入發表回應
1
小魚
iT邦大師1級‧2019-12-2621:12:05
要說明什麼?
最大公因數使用輾轉相除法應該是基本觀念吧?
最小公倍數是兩者相乘/最大公因數也算是基本觀念吧?
所以要解釋什麼?
如果還需要解釋可能要翻一下國中或國小的課本來看了.
回應
4
分享
檢舉
看更多先前的回應...收起先前的回應...
eit
iT邦新手5級‧
2019-12-2622:17:18
檢舉
intmain(void){這一行之前的程式為什麼在執行後沒有看到執行的結果,而且為什麼可以有程式碼,有什麼特別的功用嗎?
intmain(void){這一行之前的程式為什麼在執行後沒有看到執行的結果,而且為什麼可以有程式碼,有什麼特別的功用嗎?
修改
小魚
iT邦大師1級‧
2019-12-2622:28:44
檢舉
所有的C++程式都會有一個
intmain(void)
作為整個程式的主程式.
尤其是當你有幾十個幾百個檔案的時候,
這就是程式的進入點.
雖然他也可能是
intmain()
或是
voidmain()//好像有些IDE不接受這個
所有的C++程式都會有一個
intmain(void)
作為整個程式的主程式.
尤其是當你有幾十個幾百個檔案的時候,
這就是程式的進入點.
雖然他也可能是
intmain()
或是
voidmain()//好像有些IDE不接受這個
修改
阿展展展
iT邦好手1級‧
2019-12-2622:32:25
檢舉
我豆頁好痛~"~
我豆頁好痛~"~
修改
eit
iT邦新手5級‧
2019-12-2622:45:29
檢舉
喔喔!感謝
喔喔!感謝
修改
登入發表回應
0
阿展展展
iT邦好手1級‧2019-12-2621:53:20
所以你要問什麼
回應
2
分享
檢舉
eit
iT邦新手5級‧
2019-12-2622:01:59
檢舉
intmain(void){這一行之前的程式為什麼在執行後沒有看到執行的結果,而且為什麼可以有程式碼,有什麼特別的功用嗎?
intmain(void){這一行之前的程式為什麼在執行後沒有看到執行的結果,而且為什麼可以有程式碼,有什麼特別的功用嗎?
修改
DarwinWatterson
iT邦研究生1級‧
2019-12-2623:53:33
檢舉
main是公認的程式進入點,說白了就是實際執行的區段或者更專業的說法就是ㄧ個執行緒。
至於上面那段叫作函式。
函式要動起來ㄧ定要被執行緒呼叫到
main是公認的程式進入點,說白了就是實際執行的區段或者更專業的說法就是ㄧ個執行緒。
至於上面那段叫作函式。
函式要動起來ㄧ定要被執行緒呼叫到![/images/emoticon/emoticon10.gif](/images/emoticon/emoticon10.gif)
修改
登入發表回應
1
一級屠豬士
iT邦大師1級‧2019-12-2700:29:46
上面已經有人說明了,這是function.寫了一個很簡單的例子,給你參考一下.
#include
web)前後端分離,前端如何拿到第三方api跳轉傳資料到後端的資料
關於員工資訊權限管理
網站壓力測試
javascript耗時間的計算動作造成畫面阻塞的解決方式?
有推薦的庫存管理系統嗎
防毒代理商
想問一下有什麼網路工具可以丟一串中文字判斷他是UTF8還是BIG5編碼
螢幕開關一關閉重開畫面顯示無訊號
MSSQL查詢條件下數量為0的
IT邦幫忙
站方公告
【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
怎麼樣將系統遷移到SSD
web)前後端分離,前端如何拿到第三方api跳轉傳資料到後端的資料
網站壓力測試
自建網站速度非常慢(XAMMP)
螢幕開關一關閉重開畫面顯示無訊號
無法連上新買的WiFi分享器
網頁表格是否可以儲存由excel複製的部份欄位
想問一下有什麼網路工具可以丟一串中文字判斷他是UTF8還是BIG5編碼
共用印表機無法連線
javascript耗時間的計算動作造成畫面阻塞的解決方式?
熱門文章
日本最大行動支付【PAYPAY】徵後端工程師
軟體人的輸出式學習:從出片到出書—我的第一手經驗分享
[DAY1]SQL的新手懶人筆記
javascript物件教學1
django新手村3-----models一對多
新手要如何開始做B2C電商?如何在開店平台架設品牌官網?
C#小白需要看小抄01-環境設定篇(使用VSCodeonMacOS)
django新手村1
品牌設計案例
STM32開發筆記02---新建庫函數工程
一週點數排行
更多點數排行
海綿寶寶(antijava)
㊣浩瀚星空㊣(yoching)
Felix(redqi)
raytracy(raytracy)
ccenjor(ccenjor)
純真的人(jer5173)
Gary(mosbbs)
Samuel(kuanyu)
mathewkl(mathewkl)
居然解出來了(partyyaya)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1輾轉相除法| C++與演算法
輾轉相除法(Euclidean algorithm) ... 輾轉相除法是歷史上最著名的演算法之一,是求兩數的最大公因數(GCD) 極快速的方法。 ... 原理是兩個數字互相減來減去,最後就會剩...
- 2【C語言】求兩數的最大公因數(質因數分解) - CHAWTeam
以最簡單的方式,用C語言的if、while,完成質因數分解,求出兩正整數的最大公因數。 輸入 #include <stdio.h> int main ...
- 3C語言筆記: 永遠記不住的最大公因數
寫一函數求兩個整數的最大公因數,解析: 此函數需要兩個參數x,y 當y不能整除x時,將x設成為y,y設為x%y, 重複此步驟直到x%y為0 此時y就是這兩個數的最大公因數int gcd(int.
- 4[C] 使用遞迴算最大公因數GCD - nini的部落格
[C] 使用遞迴算最大公因數GCD ; #include <stdio.h> #include <stdlib.h> /* recursive GCD */ ; int GCD(int t,in...
- 5因數分解 - OpenHome.cc
程式實作:最大公因數、最小公倍數