摘要:原文鏈接歡迎現(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
摘要:需要結(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)。 ...
問題:現(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為第一...
摘要:簡(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 誕...
摘要:以前想過一個(gè)類似問題,就是沒有每個(gè)人最大最小的得錢數(shù)的限制,以前的問題可以很好用隨機(jī)數(shù)解決。于是這個(gè)問題也被以前的思想帶坑里了,把突破口完全放在了如何處理每個(gè)人的隨機(jī)數(shù)上。在與面試交談中,明顯有些緊張。 以前想過一個(gè)類似問題,就是沒有每個(gè)人最大、最小的得錢數(shù)的限制,以前的問題可以很好用隨機(jī)數(shù)解決。 于是這個(gè)問題也被以前的思想帶坑里了,把突破口完全放在了如何處理每個(gè)人的隨機(jī)數(shù)上。 于是在...
摘要:也就是說,比特幣是一個(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)支持)。也就是說,比特幣是一...
閱讀 2138·2021-11-11 16:55
閱讀 3202·2021-10-11 10:58
閱讀 3146·2021-09-13 10:28
閱讀 4084·2021-07-26 23:57
閱讀 1073·2019-08-30 15:56
閱讀 1364·2019-08-29 13:15
閱讀 1297·2019-08-26 18:18
閱讀 1311·2019-08-26 13:44