close
問題是分別用While Loop和For Loop迴圈計算3道等差數列的總和,分別以算法(A)和算法(B)輸出結果
關於這一系列問題做法大同小異,重點在於限制條件
算法(A)的限制條件是起始值(a)與項數(N)這2項變數,因為條件明確比較好處理
算法(B)的限制條件是起始值(a)與末項值(M)這2項變數,這2項變數屬於不明確條件,因為有太多可能的組合變化,也因此若要把所有的可能都列入程式會很複雜。在此只固定其中一項條件:若輸入的末項值(M)不是正確的數值時,以最接近但不大於輸入的末項值(M)的正確末項值(M)來計算
其中第1題和第2題數列每個值的差是固定的,不管是算法(A)或算法(B)都很好處理。第3題數列每個值的差是遞增的,算法(A)或While Loop還沒有問題,用For Loop做算法(B)時很難。為了簡化程式用了有點偷吃步的方法,就是在達到正確條件時強制停止迴圈
第1題:1+3+5+7+9+…
算法(A)
算法(B)
第2題:2+5+8+11+14+…
算法(A)
算法(B)
第3題:1+2+4+7+11+16…
算法(A)
算法(B)
文章標籤
全站熱搜
留言列表