2016-09-27 37 views
-2

我是編程新手,這件事情讓我困惑。我的教授給了我們一項任務,他沒有教我們怎麼做,也沒有在我們的教科書中。請幫忙!現在的問題是「考慮到宿舍,硬幣,鎳和硬幣的數量,實現一個功能,讓你手頭上的資金總額」實現一個函數來計數硬幣

這是使用Python 3

的感謝!

+2

目前還不清楚你要求我們做什麼。如果是爲你完成你的任務,[這不是](http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems)。我們不是家庭作業轉儲服務。請嘗試去做,展示你的嘗試,然後提出你正面臨的問題。 – Li357

回答

0

核心數據是兩個數組,一個是硬幣數量數組,另一個是硬幣數值數組。您需要遍歷數組,將數組中的值與另一個數組相乘,然後合計總和。

您可以使用循環手動執行此操作(這是一種很好的做法,因爲您可以在任何語言中實現此操作),也可以在數組長度上對數組a和b使用python「sum」函數。

總和([A [1] * B [I]爲我的range(LEN(B)))

1

我會寫你的代碼做你幫倒忙,但這應該幫助你開始在正確的方向。我實際上建議先閱讀this article

正如文章所描述的,解決問題的步驟是:

  1. 明白的問題 - 你被要求尋找或展示什麼?你是否理解所有使用的術語/詞彙?你有足夠的信息來解決問題嗎?你有足夠的「背景知識」來解決問題嗎?

    這一步聽起來應該是顯而易見的,但很多人跳過它。例如,很多在這個網站上提出問題的人會問:「我如何在C#中編寫x?」並且稍後會在一些探測之後才承認他們實際上並不知道C#。那麼,在那種情況下,他們顯然缺少關鍵的背景知識,所以他們的第一步就是去閱讀一些關於C#的教程。在這種情況下,術語包括「Python」,「Python 3」,「函數」以及「宿舍」,「角錢」,「鎳幣」等貨幣術語。我假設您知道什麼宿舍,硬幣等等(儘管我猜這可能會讓你感到困惑,這取決於你來自哪裏;例如,我讀了一篇文章,後面提到了一個「kopek」,我不得不去查看它這是盧布的1/100)。

    問題是:你認識Python嗎?如果沒有,你可能想要閱讀它的教程(或者如果他們提供了有關Python的信息,請查看你的講義和/或教科書)。你知道Python 3與Python 2.7有什麼不同嗎? (提示:有重大差異)。您是否熟悉Python函數的內容以及它們的寫法?

    其中一些可能很明顯,但您會驚訝於有多少人跳過其中一個步驟。我已經在自己之前完成了它 - 開始研究一個問題,只是意識到我沒有完全理解它,或者我不知道其中一個術語的含義。創意顧問Todd Henry認爲,這個問題完全不瞭解,是導致創意領域(不僅僅是軟件工程或數學)「堅持」的主要原因之一。

  2. 制定一個計劃
  3. 執行計劃
  4. 回首/體現 - 測試您的解決方案,想想如果有更好的方法來做到這一點,等

首先理解問題。忘記編程一秒 - 如果我遞給你一些改變,並要求你「手工計算」,你會怎麼做? (「如何這樣做」實際上在很多情況下非常有幫助)。例如,如果我給你5個宿舍,3個硬幣,2個鎳幣和3個便士,那麼多少錢?想想不同的方式,你可以這樣做:

  • 5個季度= 0.25 * 5 = $ 1.25
  • 3角錢= 3 * 0.10 = 0.30。
  • 2尼爾= 2 * 0.05 = 0.10。
  • 3便士= 3 * 0.01 = 0.03。 因此,答案是$ 1.25 + $ 0.30 + $ 0.10 + $ 0.03。你被要求展示或做的是編寫一個程序,它可以完成像我自動「自動」做的事情。

希望清除了「理解問題」的部分。在這一點上,我將離開步驟2 - 4。

以下是你可能想測試有幾個可能性:

  • 一個或幾個每一種硬幣
  • 幾個一種硬幣,沒有任何的休息(如5個季度的的和沒有別的或3個角錢,沒有別的)
  • 一些季度,3角錢
  • 其中一個硬幣等於或超過一美元 - 例如120便士,10角錢,4角錢等。 嘗試測試不同的「種類」場景以及「邊緣案例」。錯誤是很多更有可能在有效輸入的「邊緣」。例如,如果教授說你不能有超過1美元的硬幣,例如用0,1,99,100和101便士來測試。 99和100應該「正常」工作,並且應該以101便士「拒絕」或「優雅地失敗」。
+0

聽起來不錯EJ – Drew