[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2013-12-23 标题《编程之美》读书笔记买书问题分类编程 / java / 编程之美 标签java·编程之美·买书折扣《编程之美》读书笔记买书问题1.4买书问题解法1实现备注最近在学习《 编程之美 》这本书书中提到了很多很经典的算法问题和实现学起来真是耗费脑细胞啊。书中的算法实现使用C编写的这里作者自己写了一部分java的实现如果有错误还请各位读者批评指正。截图版权属于原作者。github【 https://github.com/cstriker1407/think_in_java 】1.4买书问题解法1实现publicclassDiscountTest{publicstaticvoidtest(){floatmininternalCalc(2,2,2,1,1);System.out.println(最小花费min);}publicstaticfloatinternalCalc(intn1,intn2,intn3,intn4,intn5){ListIntegerlistnewLinkedListInteger();list.add(n1);list.add(n2);list.add(n3);list.add(n4);list.add(n5);Collections.sort(list);n1list.get(4);n2list.get(3);n3list.get(2);n4list.get(1);n5list.get(0);floatminCost8*(n1n2n3n4n5);if(n51){floattmp5*8*(1-0.25f)internalCalc(n1-1,n2-1,n3-1,n4-1,n5-1);minCostminCosttmp?minCost:tmp;}if(n41){floattmp4*8*(1-0.2f)internalCalc(n1-1,n2-1,n3-1,n4-1,n5);minCostminCosttmp?minCost:tmp;}if(n31){floattmp3*8*(1-0.10f)internalCalc(n1-1,n2-1,n3-1,n4,n5);minCostminCosttmp?minCost:tmp;}if(n21){floattmp2*8*(1-0.05f)internalCalc(n1-1,n2-1,n3,n4,n5);minCostminCosttmp?minCost:tmp;}if(n11){floattmp1*8internalCalc(n1-1,n2,n3,n4,n5);minCostminCosttmp?minCost:tmp;}if(n11){floattmp0;minCostminCosttmp?minCost:tmp;}returnminCost;}}备注代码作者写的比较简略也没有经过大量的测试。如有问题请联系作者在此先感谢下。