国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

100塊錢換零錢,最多有多少種方式的 JavaScript 版本實現

xeblog / 3458人閱讀

摘要:原文鏈接歡迎現在有塊錢人民幣,將塊錢換成零錢最小幣值元,一共有多少方式總的不同方式的數目等于將現金數換成除第一種幣值之外的所有其他硬幣的不同方式數據,加上將現金數第一種幣值換成所有種類的幣值的不同方式,根據上面的說法來實現吧實現中的是中的

原文鏈接: 歡迎 Star

現在有100塊錢人民幣,將 100 塊錢換成零錢(最小幣值 1 元),一共有多少方式?

總的不同方式的數目等于:

將現金數 100 換成除第一種幣值之外的所有其他硬幣的不同方式數據, 加上

將現金數 (100 - 第一種幣值) 換成所有種類的幣值的不同方式

ok, 根據上面的說法來實現吧:

"use strict"

// 實現 lisp 中的 list
// car 是 list 中的第一個值
// cdr 是 list 中的剩下的值的集合
const list = (...args) => args
  ,car = (list) => list[0]
  ,cdr = (list) => list.slice(1)

// 換零錢的方式
// 如果換 0 元錢,就算是有一種換錢方式
// 如果換的錢小于 0, 那么就算有零種換錢方式
// 如果幣值的長度為 0, 那么也算是有零種換錢方式
function count_change(amount, coin_values) {
  switch (true) {
    case (amount === 0):
      return 1
    case (amount < 0 || no_more(coin_values)):
      return 0
    default:
      return (
         count_change(amount, except_first_denomination(coin_values))
         +
         count_change(
           amount - first_denomination(coin_values),
           coin_values
         )
      )
  }
}

function no_more(coin_values) {
  return coin_values.length === 0
}

function first_denomination(coin_values) {
  return car(coin_values)
}

function except_first_denomination(coin_values) {
  return cdr(coin_values)
}

測試一下:

const cn_coins = list(100, 50, 20, 10, 5, 2, 1)

count_change(100, cn_coins) // ---> 4563

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91312.html

相關文章

  • 軟件測試肖sir__005測試用例設計方法(1)

    摘要:需要結合其他測試用例設計的方法進行補充。比如邊界值邊界值在軟件中邊界值測試方法是發現錯誤能力最強的一種。其中,原因是表示輸入條件,結果是對輸入執行的一系列計算后得到的輸出。與取值或,表示某狀態不出現,則表示某狀態出現。 ...

    gnehc 評論0 收藏0
  • 現金找零方式總數(sicp)

    問題:現有現金a,并且有n種面額的零錢,問,共有多少種找零方式。問題細化:現有現金1元,并且有50分,25分,10分,5分,1分五種面額,用這5種零錢組成1元,共有多少種方式? 如果把n種零錢按照某種順序排列(如50分,25分,10分,5分,1分,不一定升序或降序,也可以亂序),那么問題可以轉化為:現金a用除第一種零錢之外其他面額的找零方式數目加上現金a-d用所有面額的找零方式數目,其中d為第一...

    pf_miles 評論0 收藏0
  • 前端構建工具(1)-- 代碼檢查 --ESlint

    摘要:簡介檢查我們寫的代碼是否滿足指定規則的靜態代碼檢查工具。作用作為代碼檢查工具,其作用主要有以下幾點統一代碼風格規則,如縮進用幾個空格是否用駝峰命名法來命名變量和函數名等。 1、簡介: eslint檢查我們寫的 JavaScript 代碼是否滿足指定規則的靜態代碼檢查工具。 ESHint 和 JSLint 也是靜態代碼檢查工具,但伴隨著發展,他們已經無法滿足需求,于是ESlint 誕...

    wendux 評論0 收藏0
  • 面試問題:發一個隨機紅包,100塊錢給10個人。每個人最多12塊錢,最少6塊錢。怎么分?

    摘要:以前想過一個類似問題,就是沒有每個人最大最小的得錢數的限制,以前的問題可以很好用隨機數解決。于是這個問題也被以前的思想帶坑里了,把突破口完全放在了如何處理每個人的隨機數上。在與面試交談中,明顯有些緊張。 以前想過一個類似問題,就是沒有每個人最大、最小的得錢數的限制,以前的問題可以很好用隨機數解決。 于是這個問題也被以前的思想帶坑里了,把突破口完全放在了如何處理每個人的隨機數上。 于是在...

    toddmark 評論0 收藏0
  • 比特幣入門筆記

    摘要:也就是說,比特幣是一個完全出于社區共識的貨幣。所謂全稱為,它是比特幣交易的基本單位。根據比特幣的協議,一個區塊的大小是而一筆交易大概是,因此一個區塊大概可以包含筆交易。 誕生 比特幣誕生于 2008 年,一個網名為中本聰的人,提出了一個設想: 創造一種不受政府或任何組織控制的貨幣 比特幣的本質就是一串數字,沒有任何資產支持(現行貨幣背后都是國家或銀行提供資產支持)。也就是說,比特幣是一...

    Loong_T 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<