为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

换零钱方式的统计

2017-12-05 3页 doc 14KB 44阅读

用户头像

is_650122

暂无简介

举报
换零钱方式的统计换零钱方式的统计 问题:给 半美元、四分之一美元、10美分、5美分、1美分的硬币,将任意数量的现金换成零钱,共有多少总不同方式, 算法 1 递归过程 思路: 设,总数为a,硬币总数为n,那么总数目等于 将a换成除第一种硬币外,所有其他硬币的不同方式的数目,加上 将a-d换成不同硬币的总数目,其中d为第一种硬币的币值 注意: 如果a=0,应作为有1种换零钱方式 如果a<0,应作为有0种换零钱方式 如果n=0,应作为有0种换零钱方式 (define (count-change amount) (cc am...
换零钱方式的统计
换零钱方式的统计 问题:给 半美元、四分之一美元、10美分、5美分、1美分的硬币,将任意数量的现金换成零钱,共有多少总不同方式, 算法 1 递归过程 思路: 设,总数为a,硬币总数为n,那么总数目等于 将a换成除第一种硬币外,所有其他硬币的不同方式的数目,加上 将a-d换成不同硬币的总数目,其中d为第一种硬币的币值 注意: 如果a=0,应作为有1种换零钱方式 如果a<0,应作为有0种换零钱方式 如果n=0,应作为有0种换零钱方式 (define (count-change amount) (cc amount 5)) (define (cc amount kinds-of-coins) (cond ((= amount 0) 1) ((or (< amount 0) (= kinds-of-coins 0)) 0) (else (+ (cc amount (- kinds-of-coins 1)) (cc (- amount (first-denomination kinds-of-coins)) kinds-of-coins))))) (define (first-denomination kinds-of-coins) (cond ((= kinds-of-coins 1) 1) ((= kinds-of-coins 2) 5) ((= kinds-of-coins 3) 10) ((= kinds-of-coins 4) 25) ((= kinds-of-coins 5) 50))) 算法 2 算法分析: 1. 该算法产生出一个属性的递归计算过程,可以看到对这一问题要出迭代算法就没那 么明显了。 2. 分析算法的写法,可以看出在初始化硬币总类和币值是不那么自然,对比种的把握是通 过一个数值形式的kinds-of-coins来区分,比较生硬,要变出程序来也就要了解示法, 相比较而言如果是面向对象语言,那么可以很自然用类来定义。 迭代过程:初步分析,所需空间并非常量,应为一个栈空间,且大小不超过a*n. 利用表来提供可用于兑换的硬币,算法: (define us-coins (list 50 25 10 5 1)) (define uk-coins (list 100 50 20 10 5 2 1 0.5)) (define (cc amount coin-values) (cond ((= amount 0) 1) ((or (< amount 0) (no-more? coin-values)) 0) (else (+ (cc amount (except-first-denomination coin-values)) (cc (- amount (first-denomination coin-values)) coin-values))))) (define (no-more? items) (null? items)) (define (except-first-denomination items) (cdr items)) (define (first-denomination items) (car items)) (cc 100 us-coins) (cc 100 uk-coins) 292 104561
/
本文档为【换零钱方式的统计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索