算24点问题
问题描述:给定4个正整数,用算术运算符 +, -, *, / 将这4个正整数连接起来,是最终的得数恰为24点。
数据输入:由文件input.txt给出输入数据,第一行有4个正整数。
结果输出:将计算24的算术表达式输出到文件output.txt。如果有多个满足要求的表达式,只要输出一组,每一步算式用分号隔开。如果无法得到24则输出“No Solution!”。
输入文件示例:1 2 3 7
输出文件示例:2+1=3;7*3=21;21+3=24;
分析:对输入的4个数a,b,c,d与运算符+,-,*,/的所有组合用回溯法进行搜索。
算法实现Java代码:
0-1背包问题
问题描述:给定n种物品和一个背包。物品i的重量是wi,其价值是vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大?在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。
分析:用搜索子集数的一般算法解决。