成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

100塊錢換零錢,最多有多少種方式的 JavaScript 版本實(shí)現(xiàn)

xeblog / 3490人閱讀

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

原文鏈接: 歡迎 Star

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

總的不同方式的數(shù)目等于:

將現(xiàn)金數(shù) 100 換成除第一種幣值之外的所有其他硬幣的不同方式數(shù)據(jù), 加上

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

ok, 根據(jù)上面的說法來實(shí)現(xiàn)吧:

"use strict"

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

// 換零錢的方式
// 如果換 0 元錢,就算是有一種換錢方式
// 如果換的錢小于 0, 那么就算有零種換錢方式
// 如果幣值的長(zhǎng)度為 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)
}

測(cè)試一下:

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91312.html

相關(guān)文章

  • 軟件測(cè)試肖sir__005測(cè)試用例設(shè)計(jì)方法(1)

    摘要:需要結(jié)合其他測(cè)試用例設(shè)計(jì)的方法進(jìn)行補(bǔ)充。比如邊界值邊界值在軟件中邊界值測(cè)試方法是發(fā)現(xiàn)錯(cuò)誤能力最強(qiáng)的一種。其中,原因是表示輸入條件,結(jié)果是對(duì)輸入執(zhí)行的一系列計(jì)算后得到的輸出。與取值或,表示某狀態(tài)不出現(xiàn),則表示某狀態(tài)出現(xiàn)。 ...

    gnehc 評(píng)論0 收藏0
  • 現(xiàn)金找零方式總數(shù)(sicp)

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

    pf_miles 評(píng)論0 收藏0
  • 前端構(gòu)建工具(1)-- 代碼檢查 --ESlint

    摘要:簡(jiǎn)介檢查我們寫的代碼是否滿足指定規(guī)則的靜態(tài)代碼檢查工具。作用作為代碼檢查工具,其作用主要有以下幾點(diǎn)統(tǒng)一代碼風(fēng)格規(guī)則,如縮進(jìn)用幾個(gè)空格是否用駝峰命名法來命名變量和函數(shù)名等。 1、簡(jiǎn)介: eslint檢查我們寫的 JavaScript 代碼是否滿足指定規(guī)則的靜態(tài)代碼檢查工具。 ESHint 和 JSLint 也是靜態(tài)代碼檢查工具,但伴隨著發(fā)展,他們已經(jīng)無法滿足需求,于是ESlint 誕...

    wendux 評(píng)論0 收藏0
  • 面試問題:發(fā)一個(gè)隨機(jī)紅包,100塊錢給10個(gè)人。每個(gè)人最多12塊錢,最少6塊錢。怎么分?

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

    toddmark 評(píng)論0 收藏0
  • 比特幣入門筆記

    摘要:也就是說,比特幣是一個(gè)完全出于社區(qū)共識(shí)的貨幣。所謂全稱為,它是比特幣交易的基本單位。根據(jù)比特幣的協(xié)議,一個(gè)區(qū)塊的大小是而一筆交易大概是,因此一個(gè)區(qū)塊大概可以包含筆交易。 誕生 比特幣誕生于 2008 年,一個(gè)網(wǎng)名為中本聰?shù)娜?,提出了一個(gè)設(shè)想: 創(chuàng)造一種不受政府或任何組織控制的貨幣 比特幣的本質(zhì)就是一串?dāng)?shù)字,沒有任何資產(chǎn)支持(現(xiàn)行貨幣背后都是國(guó)家或銀行提供資產(chǎn)支持)。也就是說,比特幣是一...

    Loong_T 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<