exercise 1: pascal』s ********
給出行數和列數,運用遞迴,畫出帕斯卡三角形
def pascal
(c: int, r: int)
: int =
exercise 2: parentheses balancing
給定乙個字元陣列,運用遞迴,判定它是否「括號平衡」
def balance
(chars: list[char]
): boolean =
loop
(counts, chars)
}
思路
我們從字元陣列的第乙個開始判定,如果是』(』,我們就對counts加1,如果是』)』,我們就對counts減1,遞迴過程中,一旦counts變為負,說明不平衡,如果最後遞迴完所有的字元,如果counts為0,說明平衡,如果counts為正,說明不平衡。
exercise 3: counting change
給定錢的總值和硬幣面額數,運用遞迴求出一共有多少種找零方法
def countchange
(money: int, coins: list[int]
): int =
}
思路
運用動態規劃
假設k = money/c1,那麼money可以按照下面的方式分解:
money = e0 + c1 * 0
money = e1 + c1 * 1
money = e2 + c1 * 2
……money = ek + c1 * k
其中e0……ek由c2, c3……cn線性組合。相當於構造money的過程,分成用0,1,2,……k個c1這(k+1)種情況來考慮,所以可以得到下面的遞推關係式。
countchange(money, coins)表示用coins種硬幣,構造money的方案數,則:
countchange(money, coins) = countchange(money-c10, coins-1) + countchange(money-c11, coins-1) + …… + countchange(money-c1*k, coins-1)
上面遞推關係式等價於:
countchange(money, coins) = countchange(money, coins-1) + countchange(money-c1, coins)
Python 第一周程式設計作業
一 程式設計題 1 結合turtle庫使用手冊,讀懂下列 並在jupyter編譯器中執行觀察結果 依次分析下 第一行通過保留字import引用了python中用於繪製圖形的turtle庫,as是作為別名之用。使用import引用函式庫有兩種方式,但其對函式的使用方式略有不同 import 庫名 fr...
第一周作業
專案shrinkwrap games operating systems 這些軟體是怎麼說服你 陌生人 成為他們的使用者的?他們的目標都是盈利麼?通過廣告 老使用者口碑推薦 實體店推薦等方式發展新使用者,目標一般是盈利的,賺取使用者現金。通過廣告 老使用者口碑推薦等方式發展新使用者,目標一般是盈利的...
第一周作業
我的乙個小目標 7月13下午15.58分,我不遠千里踏上了北上求學謀生之路 年近快30歲的我深深的感到了孔子所謂的男人三十而立的壓力,從小到大父母對我的要求和期望都比較大,而我總是讓他們失望,一直都是一事無成,有的時候我都在質問自己甚至心中還有一絲幻想,如果時光能倒退從來我以前一定好好學習,考乙個好...