scala 第一周程式設計作業

2021-08-02 22:47:45 字數 1325 閱讀 3438

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歲的我深深的感到了孔子所謂的男人三十而立的壓力,從小到大父母對我的要求和期望都比較大,而我總是讓他們失望,一直都是一事無成,有的時候我都在質問自己甚至心中還有一絲幻想,如果時光能倒退從來我以前一定好好學習,考乙個好...