C語言“最大公約數和最小公倍數”程式碼講解

來源:酷知科普網 2.6W

題目:輸入兩個正整數m和n,求最大公約數和最小公倍數。

操作方法

(01)首先開啟CodeBlocks,建立一個新專案。專案語言,選擇“c”, 我們將專案名稱命名為“MaxAndMin”,然後下一步,“finish”。

C語言“最大公約數和最小公倍數”程式碼講解
C語言“最大公約數和最小公倍數”程式碼講解 第2張
C語言“最大公約數和最小公倍數”程式碼講解 第3張
C語言“最大公約數和最小公倍數”程式碼講解 第4張
C語言“最大公約數和最小公倍數”程式碼講解 第5張

(02)建立好專案後,我們開啟 “main.c”檔案。在這裡我們先分析一下題目。輸入兩個正整數m和n,求最大公約數和最小公倍數此程式要求 輸入兩個數,處理後,輸出兩個結果。這裡我們繼續用到 自定義函式 分別來完成最大公約數和最小公倍數。

C語言“最大公約數和最小公倍數”程式碼講解 第6張
C語言“最大公約數和最小公倍數”程式碼講解 第7張

(03)首先是main函式部分,我們完成輸入功能其中m和n是輸入的兩個數,num是將來儲存的最大公約數。num的值是由後面我們定義的函式,來賦值的。

C語言“最大公約數和最小公倍數”程式碼講解 第8張

(04)這裡為了能更加嚴謹,我們要強制使用者輸入正確的數for(;;)表示一個無窮迴圈 同樣使用while(true)也可達到無窮迴圈效果。在迴圈中要求使用者多次輸入,直到使用者輸入合法的數值

C語言“最大公約數和最小公倍數”程式碼講解 第9張
C語言“最大公約數和最小公倍數”程式碼講解 第10張

(05)接下來,當用戶輸入合法之後。我們就要寫else的情況了。但在寫之前,我們先要將計算最大公約數和最小公倍數的函式定義出來(詳細見圖)

C語言“最大公約數和最小公倍數”程式碼講解 第11張
C語言“最大公約數和最小公倍數”程式碼講解 第12張

(06)首先是最大公約數其中r用來儲存餘數。這裡我們簡單說一下演算法過程。 首先我們將m和n求餘數(誰大誰小不影響)。當得到的餘數r不是0,就表示 m和n之間不是倍數關係。那麼我們將m的值改為n,n中從存取r 再次執行r=m%n 。意思就是,反覆的用餘數取模餘數,直到0位置。就是n中存的就為最大公因數了。

C語言“最大公約數和最小公倍數”程式碼講解 第13張
C語言“最大公約數和最小公倍數”程式碼講解 第14張

(07)最後是,最小公倍數函式,很簡單,利用公式(m*n)/最大公約數,很快就能得到結果。這就免除了麻煩的計算過程

C語言“最大公約數和最小公倍數”程式碼講解 第15張

(08)最後,回到main中,我們將程式碼補全。在else中 分別呼叫兩個函式。這樣程式碼就完成了。以下為main函式中的程式碼

C語言“最大公約數和最小公倍數”程式碼講解 第16張
C語言“最大公約數和最小公倍數”程式碼講解 第17張

(09)接下來執行,我們輸入 6,3 其中3就是最大公因數,6是最小公倍數。到這裡就結束了。但其實程式碼還存在問題。當我們輸入的數沒有公因數時,就出bug。這個自己可以開動腦筋去解決。

C語言“最大公約數和最小公倍數”程式碼講解 第18張
熱門標籤