資訊內容
scratch一起學第九講——《求取最大公約數》

哈嘍大家好,歡迎再次回到我們的課堂,這節課咖姐帶領大家學習如何用scratch來求取兩個數的最大公約數。
在此做項目之前,我們先來了解一下定義:
最大公約數:也稱最大公因數、最大公因子,指兩個或多個整數共有約數中最大的一個。比如4和6的最大公約數就是2,而4和8的最大公約數就是4。
求最大公約數有多種方法,常見的有質因數分解法、短除法、輾轉相除法、更相減損法。
想要實現想要的功能,首先必須有兩個數字,這兩個數字是未知的,我們需要手動輸入,所以可通過“詢問...并等待”積木塊來實現,同樣的,我們也需要兩個變量來接受這兩個數字,具體的代碼如下:?

那么接下來,我們需要進行考慮用哪種方法來實現求取最大公約數的功能,我們已經知道有很多種方法,今天我們用更相減損法來實現最大公約數的求取。
更相減損法:也叫更相減損術,是出自《九章算術》的一種求最大公約數的算法,就是對于給定的兩個數,用較大的數減去較小的數,然后將差和較小的數構成新的一對數,再用較大的數減去較小的數,反復執行此步驟直到差數和較小的數相等,此時相等的兩數便為原來兩個數的最大公約數。
從上面的定義我們也知道,要反復比較差值和最小數的大小,那么這里我們就要用到一個新的計算方法----遞歸。
遞歸:就是在運行的過程中調用自己。
構成遞歸需具備的條件:
1. 子問題須與原始問題為同樣的事,且更為簡單;
2. 不能無限制地調用本身,須有個出口,化簡為非遞歸狀況處理。
同樣的,使用遞歸時我們需要一個函數。一個較大的程序一般應分為若干個程序塊,每一個模塊用來實現一個特定的功能,而這每個每個模塊都可以看成一個子函數,這個大的程序可以看成一個主函數。具體的函數形式在我們scratch中是以“自制積木”來實現的。
按照我們更相減損法的定義,可以做出具體的代碼如下:

同樣的,我們需要在程序開始時調用這個函數,具體代碼如下:

求取最大公約數的程序以及完成,趕緊試一下吧。
我們知道有多種求取公約數的方法,那么你能夠運用別的方法實現同樣的功能嗎?試一試吧
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
