JS实现的找零张数最小问题示例
本文实例讲述了JS实现的找零张数最小问题。分享给大家供大家参考,具体如下:
完整代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net 找零问题</title> </head> <body> <script> var price = prompt("请输入商品价格(在100块钱以内):"); if(price>100){ alert("请输入0-100之间的整数!"); var price = prompt("请输入商品价格(在100块钱以内):"); } else{ document.writeln("<b style='color: green;'>"+price+"</b>"+"找零情况如下:</br>"); var number = new Array(50,20,10,5,1); if (price>=0){ for(var i=0; i<number.length; i++){ var N=Math.floor(price/number[i]); document.writeln("找"+"<b style='color:red;'>"+number[i]+"</b>"+"元--"+"<b style='color:red;'>"+N+"</b>"+"张"+"</br>"); price = price-N*number[i]; } } } </script> </body> </html>
运行结果:
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
相关推荐
-
JS数组操作中的经典算法实例讲解
冒泡排序 <script type="text/javascript"> var arr = [3,7,6,2,1,5]; 定义一个交换使用的中间变量 var temp = 0; for(i=0;i<arr.length;i++){ for(j=0;j<arr.length;j++){ 如果下一个元素小于当前元素 if(arr[j]>arr[j+1]){ 互换 temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tem
-
JavaScript递归算法生成树形菜单
本文实例为大家分享了js生成树形菜单的具体代码,供大家参考,具体内容如下 1.最终效果图(这里仅为实现算法,并加载至页面,不做任何css界面优化) 注释:本示例包含三级目录菜单,但实际上可支持N级(可使用该代码自行测试) 2.数据源 菜单信息一般来源于数据库中数据表,且为自连接表,其中包含主要字段(主键,菜单名称,父级id): 本示例在前端页面中使用对象数组模拟从数据库获取菜单信息: var menuArry = [ { id: 1, name: "办公管理", pid: 0 }, {
-
JS面试题---关于算法台阶的问题
有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多100步,每次走2步最少50步:然后明显跑题了...还好对方及时把我打断了...不然我估计要对着这玩意一直死脑经...一路走到黑.. 然后回到家了.拿着偶的mac,然后静静的思考,终于写出来了 var Stairs = new step(); function step(){ this.n1=1; this.n2=2; th
-
JavaScript数据结构与算法之队列原理与用法实例详解
本文实例讲述了JavaScript数据结构与算法之队列原理与用法.分享给大家供大家参考,具体如下: 队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素.队列用于存储按顺序排列的数据,先进先出,这点和栈不一样(后入先出).在栈中,最后入栈的元素反而被优先处理.我们现在可以把队列想象对我们去餐馆吃饭的情景,很多人排队吃饭,排在最前面的人先打饭.新来的人只能在后面排队.直到轮到他们为止. 一:对队列的操作 队列有2种主要的操作,向队尾中插入新元素enqueue()方法和删除队列中的队首的元
-
JavaScript程序设计高级算法之动态规划实例分析
本文实例讲述了JavaScript程序设计高级算法之动态规划.分享给大家供大家参考,具体如下: 主要是看了<数据结构与算法>有所感悟,虽然这本书被挺多人诟病的,说这有漏洞那有漏洞,但并不妨碍我们从中学习知识. 其实像在我们前端的开发中,用到的高级算法并不多,大部分情况if语句,for语句,swith语句等等,就可以解决了.稍微复杂的,可能会想到用递归去的解决. 但要注意的是递归写起来简洁,但实际上执行的效率并不高. 我们再看看动态规划的算法: 动态规划解决方案从底部开始解决问题, 将所有小问题
-
JS使用贪心算法解决找零问题示例
本文实例讲述了JS使用贪心算法解决找零问题.分享给大家供大家参考,具体如下: 前面介绍了JS贪心算法解决背包问题,这里再来看看找零问题的解决方法. 在现实生活中,经常遇到找零问题,假设有数目不限的面值为20,10,5,1的硬币. 给出需要找零数,求出找零方案,要求:使用数目最少的硬币. 对于此类问题,贪心算法采取的方式是找钱时,总是选取可供找钱的硬币的最大值.比如,需要找钱数为25时,找钱方式为20+5,而不是10+10+5. 贪心算法还是很常见的算法之一,这是由于它简单易行,构造贪心策略不是很
-
JS基于贪心算法解决背包问题示例
本文实例讲述了JS基于贪心算法解决背包问题.分享给大家供大家参考,具体如下: 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解. 寻找最优解的过程,目的是得到当前最优解 部分背包问题:固定容积的背包能放入物品的总最大价值 物品 A B C D 价格 50 220 60 60 尺寸 5 20 10 12 比率 10 11 6 5 按比例降序尽可能多放入物品 function greedy(values, weight
-
JS二分查找算法详解
二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法.查找过程可以分为以下步骤: (1)首先,从有序数组的中间的元素开始搜索,如果该元素正好是目标元素(即要查找的元素),则搜索过程结束,否则进行下一步. (2)如果目标元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作. (3)如果某一步数组为空,则表示找不到目标元素. 参考代码: // 非递归算法 function binary_search(arr, key) { var low = 0,
-
JavaScript实现N皇后问题算法谜题解答
谜题 N皇后问题.将N个皇后放置在NxN的国际象棋棋盘上,其中没有任何两个皇后处于同一行.同一列或同一对角线上,以使得它们不能互相攻击. 策略 回溯法. JavaScript解 以8皇后问题为例: 复制代码 代码如下: /** * Created by cshao on 12/28/14. */ function getNQueens(order) { if (order < 4) { console.log('N Queens problem apply for order b
-
JS实现的全排列组合算法示例
本文实例讲述了JS实现的全排列组合算法.分享给大家供大家参考,具体如下: 全排列组合算法,例如a,b,c,d进行全排列组合,则组合结果为:a,b,ab,c,ac,bc,abc,d,ad,bd,abd,cd,acd,bcd,abcd.实现思路:从数据源拿出一个元素,依次与已存在的组合数据进行组合,循环上面操作直到数据源没有数据为止. 例子: 数据源a,b,c 1.拿出a,组合数据group为空,插入数据源a元素到组合数据group,此时group=[a] 2.拿出b,组合数据group拿出a,a和
-
javascript算法之二叉搜索树的示例代码
什么是二叉树 二叉树就是树的每个节点最多只能有两个子节点 什么是二叉搜索树 二叉搜索树在二叉树的基础上,多了一个条件,就是二叉树在插入值时,若插入值比当前节点小,就插入到左节点,否则插入到右节点:若插入过程中,左节点或右节点已经存在,那么继续按如上规则比较,直到遇到一个新的节点. 二叉搜索树的特性 二叉搜索树由于其独特的数据结构,使得其无论在增删,还是查找,时间复杂度都是O(h),h为二叉树的高度.因此二叉树应该尽量的矮,即左右节点尽量平衡. 二叉搜索树的构造 要构造二叉搜索树,首先要构造二叉树
随机推荐
- 飞信的CMD命令行接口批量发送信息
- SQL Server 2008中SQL之WaitFor使用介绍
- 详解基于node的前端项目编译时内存溢出问题
- Win2003服务器 IIS6.0 rewrite的设置图文教程
- PHP中的use关键字及文件的加载详解
- 解读css发展历史
- 实例解析Java中的构造器初始化
- PHP生成不重复标识符的方法
- Popup弹出框添加数据实现方法
- C# 如何获取出错的错误所在行数信息 原创
- Android开发笔记之Android中数据的存储方式(二)
- 基于swing实现窗体拖拽和拉伸
- .Net Core简单使用Mvc内置的Ioc(续)
- MySQL事务的基础学习以及心得分享
- c++文件监控之FileSystemWatcher
- 浅谈vue3中effect与computed的亲密关系
- ASP.NET全栈开发教程之在MVC中使用服务端验证的方法
- VUE2.0中Jsonp的使用方法
- 使用vue-router完成简单导航功能【推荐】
- Javascript和jquery在selenium的使用过程