求一道数据结构算法题的答案?

问题描述

把100元钱换成1元,2元,5元,10元的有多少种换法?麻烦大家都把你们的方式写下来我参考、参考?貌似可以用递归但是我没有写过,我写过四个嵌套循环,但是确实很不行那种方式。效率问题。希望大虾们把你们的方式写出来给小弟我参考参考。

解决方案

解决方案二:
循环嵌套可以稍微优化一下,比如for(intcnt10=0;cnt10<=10;cnt10++)另外,如果到某个循环,发现总和已经>100,那么就可以break了
解决方案三:
这个google一下,应该有详细的答案
解决方案四:
递归做比较好。。
解决方案五:
packagecom.keeya.test;//100元的各种零钱publicclassDecNum{publicstaticvoidmain(String[]args){PrintHowToDivide(100);}publicstaticvoidPrintHowToDivide(intvalue){inttemp=value;intten=temp/10;temp%=10;intfive=temp/5;temp%=5;inttwo=temp/2;temp%=2;intone=temp;PrintHowToDivide(value,ten,five,two,one);}/**value为需要分解的钱,num_five,num_two,num_one分别为当前的521块的张数**/privatestaticvoidPrintHowToDivide(intvalue,intnum_ten,intnum_five,intnum_two,intnum_one){System.out.println(value+"块钱有如下分法:"+num_ten+"张10元,"++num_five+"张5元,"+num_two+"张2元,"+num_one+"张1元");if(num_one==value)return;if(num_two>0){PrintHowToDivide(value,num_ten,num_five,num_two-1,num_one+2);}elseif(num_five>0){PrintHowToDivide(value,num_ten,num_five-1,(num_one+5)/2,(num_one+5)%2);}elseif(num_ten>0){PrintHowToDivide(value,num_ten-1,(num_one+10)/5,(num_one+10)%5/2,(num_one+10)%5%2);}}}

解决方案六:
我4楼给的是原来个改的其实这个可扩展性不好可以把需要分成什么面额的以参数传进去懒的写了呵呵
解决方案七:
受教了
解决方案八:
算法是弱项,呵呵,看看高手解答
解决方案九:
学习了

时间: 2024-11-08 19:16:22

求一道数据结构算法题的答案?的相关文章

求一个面试算法题答案。

问题描述 求一个面试算法题答案. 已知函数f()以相同的概率返回0或者1,求一个函数g()以相同的概率返回0-7之间的任意一个数字. 解决方案 其实这个题不难,可以考虑用2进制的方式来做.g(){return 4*f()+2*f()+f();} 希望能帮到你. 解决方案二: #includeint g(){srand(time(NULL));ret = rand()%8;return ret;}

时间复杂度-求解一道acm算法题,在线等!!

问题描述 求解一道acm算法题,在线等!! 有N个D维向量,求解每个向量到其他向量的最短距离. 只要求解每个向量到其他向量的最短距离就可以了. 距离采用欧式距离表示. 时间复杂度近似于O(DN) 解决方案 http://zhidao.baidu.com/link?url=Xt0N7upNLbk_Ik4uBxPx6Nl2n3JVp_ry9Of6YAnvQiVIkwuCXuiIPSoanHbeaf07M8zjTy-qpD4A4iFe1dXDuq

设计-一道二重积分算法题,要求复杂度低于n^2

问题描述 一道二重积分算法题,要求复杂度低于n^2 对于x∈X{x0,x1,x2,...,xn-1},y∈Y{y0,y1,y2,...,yn-1},又已知一个矩阵C,C中的元素C(i,j)的值为p(xi,xj) 设计一个算法计算 假设这里log(.)属于基本算符,有没有让它的复杂度低于n^2的方法? 解决方案 每天一道算法题2 删除链表结点(时间复杂度为O(1)))

被一道JAVA算法题难住了,请各位帮忙看下。

问题描述 数组 C[I] = A[I] + B[I] / 1,000,000.例如 A 和 B: A[0] = 0B[0] = 500,000 A[1] = 1B[1] = 500,000 A[2] = 2B[2] = 0 A[3] = 2 B[3] = 0 A[4] = 3B[4] = 0 A[5] = 5B[5] = 20,000则 C: C[0] = 0.5 C[1] = 1.5 C[2] = 2.0 C[3] = 2.0 C[4] = 3.0 C[5] = 5.02寻找一对下标(P, Q

一著名软件公司的java笔试算法题的答案

本文为原创,如需转载,请注明作者和出处,谢谢!     原题如下:用1.2.2.3.4.5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234.412345等,要求:"4"不能在第三位,"3"与"5"不能相连.  解题思路:     很明显,这是一个递归算法.我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1*2*3*4*5*6= 6!=720个递增的数.但如果是1,2,2,3,4,5,那么

一个算法题,求答案啊啊啊啊

问题描述 一个算法题,求答案啊啊啊啊 白班 09:00-18:00 通班 09:00-21:00 每个人每个月通班数量必须等于早中班和中晚班数量之和 早中班 09:00-15:00 中晚班 15:00-21:00 假设:每月按照30计算. 排班规则: 1.每个人每个月固定休息6天连续上班天数不超过7天. 2.每天各班次上班的人数最低需求:8个白班5个通班1个早中班,2个中晚班. 3.每个月每个人的通班天数安排不超过8天. 4.每个人每个月早中班和中晚班的天数之和需要与通班天数相等. 5.每月最多

c语言-求做一道数据结构(C语言的题)

问题描述 求做一道数据结构(C语言的题) 运行文件加密程序,输入要加密的文件名,然后输入密码,最后输入加密后的文件名,程序对文件中读入的每一个字符与密码进行异或,再将异或后的内容倒序写入指定的文件中. 解密程序为加密程序的逆过程. 请使用顺序栈的结构设计并完成程序的功能. 解决方案 http://blog.163.com/chatter@126/blog/static/12766566120101020102247603/ 解决方案二: http://blog.csdn.net/fdipzone

c语言-求一道关于C语言概率计算题

问题描述 求一道关于C语言概率计算题 问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率. 输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔. 输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数 样例输入 2 1 3 4 样例输出0.3333 数据规模和约定 对于50%的数据,n≤5. 对于100%的数据,n≤100,b≤100. (最好讲清一下思路) 解决方案 两个思路,一个是对n个[a,b]的数据求全组合,并且看其中和为x的数量,两者相除可以得到精确的

记一道毫无思路的算法题

今天贤内给了我一道很实际的算法题,把我彻底难住了,实在想不出来,于是写此博文以记之. 背景是这样的,现在有一个付款明细的Excel,里面有为哪个发票,哪个公司应付多少钱的明细,明细数据是62条,现在知道我们已经付出的金额为Sum,请问到底哪些发票是已付款的. 这是62条明细数据: 653165.00 356029.11 220896.45 146362.00 1847670.00 3018518.91 1347553.07 145010.74 339784.84 199350.28 120611