三個數演算法
① 三個數連比的演算法有哪些呢
連比的演算法有很多,詳細介紹如下:
1、如果前一個比的後項和後一個比的前項相同,可把兩個比直接寫成連比。如甲∶乙=3∶2,乙∶丙=2∶4,甲∶乙∶丙=3∶2∶4。
4、連比是兩個以上的部分量的連續相比。它反映了各部分所佔份數與總份數之間的關系,但連比不是連除。求三個數連比的方法一般的是,如果甲、乙兩數的比是a∶b,乙、丙兩數的比是b∶c,那麼,表示甲、乙、丙三個數的比可以寫成a∶b∶c。a∶b∶c就叫做甲、乙、丙三個數的連比。
② 3個數最大公約數演算法
對於3個數A,B,C,最小公倍數=A*B*C/最小公約數的平方
對於對小公約數,可以採用兩次輾轉相除法
先求A,B的最小公約數D
再求出C與D的最小公約數E
那麼E就是這三個數的最小公約數
A*B*C/E/E就是三個數的最小公倍數
舉例如下
求1734,816和1343的最大公約數:
首先求1734,816的最大公約數:
gcd(1734,816)表示開始求1734,816的最大公約數。
gcd(1734,816)
=gcd(1734,816)1734=2*816+102
(102為1734除以816的余數,而2為商,以後的如此類推)
=gcd(816,102)816=8*102
(至此余數為0,則102為1734和816的最大公約數)
運用3個數的最大公約數的求解原理:
只需求的1343和102的最大公約數即為1734,816和1343的最大公約數。
gcd(1343,102)
=gcd(1343,102)1343=13*102+17
=gcd(102,17)102=6*17
(至此余數為0,則17為即為1734,816和1343的最大公約數)
則17為即為1734,816和1343的最大公約數
更相減損術求解(也是現學現賣的)
原理:
第一步:任意給定兩個正整數;判斷它們是否都是偶數。若是,則用2約簡;若不是則執行第二步。
第二步:以較大的數減較小的數,接著把所得的差與較小的數比較,並以大數減小數。繼續這個操作,直到所得的減數和差相等為止,則這個等數就是所求的最大公約數。
其中所說的「等數」,就是最大公約數。求「等數」的辦法是「更相減損」法,實際上就是輾轉相除法。
首先看1734和816.
兩個數都是偶數,為了簡化計算,都除以2得到867和408.
下面是計算過程:
867-408=459
459-408=51
408-51=357
357-51=306
306-51=255
255-51=204
204-51=153
153-51=102
102-51=51
至此所得的減數和差相等,由於867和408是1734和816除以2得到的數字。故
1734和816的最大公約數還是102(51*2=102).
在用更相減損術求102和1343的的最大公約數即為1734,816和1343的最大公約數。
1343-102=1241(由於102*10=1020,1343-1020=323,323還是大於102的)
...
...
...
323-102=221
221-102=119
119-102=17
102-17=85
85-17=68
68-17=51
51-17=34
34-17=17
至此所得的減數和差相等.故17為1734,816和1343的最大公約數
③ 設計演算法找出三個數中的最大值
有a,b,c三個數,比較它們的大小
方法一,按順序兩兩比較,取較大的
if (a > b) {
max = a;
} else {
max = b;
}
if (max < c) {
max = c;
}方法二,假設第一個是最大的,與後面兩個數進行比較,將較大的值賦給max
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
拓展資料
1、什麼是演算法
演算法(algorithm):就是定義良好的計算過程,他取一個或一組的值為輸入,並產生出一個或一組值作為輸出。簡單來說演算法就是一系列的計算步驟,用來將輸入數據轉化成輸出結果。
mark:我們可以把所有的演算法想像為一本「菜譜」,特定的演算法比如菜譜中的的一道「老醋花生米」的製作流程,只要按照菜譜的要求製作老醋花生米,那麼誰都可以做出一道好吃的老醋花生米。so,這個做菜的步驟就可以理解為:「解決問題的步驟」
2、演算法的意義
假設計算機無限快,並且計算機存儲容器是免費的,我們還需要各種亂七八糟的演算法嗎?如果計算機無限快,那麼對於某一個問題來說,任何一個都可以解決他的正確方法都可以的!
當然,計算機可以做到很快,但是不能做到無限快,存儲也可以很便宜但是不能做到免費。
那麼問題就來了效率:解決同一個問題的各種不同演算法的效率常常相差非常大,這種效率上的差距的影響往往比硬體和軟體方面的差距還要大。
3、如何選擇演算法
第一首先要保證演算法的正確性
一個演算法對其每一個輸入的實例,都能輸出正確的結果並停止,則稱它是正確的,我們說一個正確的演算法解決了給定的計算問題。不正確的演算法對於某些輸入來說,可能根本不會停止,或者停止時給出的不是預期的結果。然而,與人們對不正確演算法的看法想反,如果這些演算法的錯誤率可以得到控制的話,它們有時候也是有用的。但是一般而言,我們還是僅關注正確的演算法!
第二分析演算法的時間復雜度
演算法的時間復雜度反映了程序執行時間隨輸入規模增長而增長的量級,在很大程度上能很好反映出演算法的好壞。
④ 有三個整數a,b,c,由鍵盤輸入,輸出其中最大的數,畫出其演算法流程圖.
熱點內容
|