1.主程序

package recursion;

//简单背包问题-递归实现-

//将不同重量的数据项放入背包中,以使背包的最后

//-----------达到指定的总重量-------------

public class Pairing {

private int weight = 20; // 背包承受的重量

private int target;

private int[] items = { 11, 8, 7, 6, 5 };// 可选的总量数据项

private int size; // 可选物体的数目

private int j = 0;

// ------------構造函數----------------

public Pairing() {

this.size = items.length;

}

// -------------主程序----------------

public String pairing() {

target = weight;

String result = "";

for (int i = j; i < size; i++) {

if (target > items[i]) { // 目標重量大与选择数据项

result = result + " " + String.valueOf(items[i]);

System.out.println(result + " --target is " + target + "--"

+ items[i] + " is too small");

target = target - items[i];

} else if (target < items[i]) { // 目标总量小于选择的数据项

System.out.println(result + " --target is " + target + "--"

+ items[i] + " is too big");

} else { // 目标重量等于选择的数据项

result = result + " " + String.valueOf(items[i]);

System.err.println(result + " --target is " + target + "--"

+ items[i] + " is success");

return "success";

}

}

// 当以items[j]为首个匹配项的匹配不存在是,递归处理从j+1到size范围内的数

j = j + 1;

pairing();

// 没有恰好等于目标的匹配组合

return "fail";

}//end pairing

}//end

2.测试程序

package recursion;

public class App {

public static void main(String[] args) {

Pairing pair = new Pairing();

pair.pairing();

}

}

3.运算结果

11 8 --target is 9--8 is too small

11 8 --target is 1--7 is too big

11 8 --target is 1--6 is too big

11 8 --target is 1--5 is too big

8 --target is 20--8 is too small

8 7 --target is 12--7 is too small

8 7 --target is 5--6 is too big

8 7 5 --target is 5--5 is success

java 简单背包问题_简单的背包问题--java递归实现相关推荐

  1. java编程赋值运算符_跟我学java编程—简单赋值运算符“=”

    赋值运算符是双目运算符,用在赋值表达式中.赋值运算符将值存储在运算符左边操作数指定的变量中.有两种赋值操作,简单赋值和复合赋值,简单赋值把运算符右边的操作数的值存储在运算符左边操作数指定的变量中:复合 ...

  2. java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果

    原标题:好程序员Java教程分享使用JS实现简单喷泉效果 好程序员Java教程分享使用JS实现简单喷泉效果,最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下: ...

  3. java 在线测评_简单java在线测评程序

    简单java程序在线测评程序 v一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. v二.思 ...

  4. java 内存例子_简单的例子 关于Java内存管理的讲解

    我想做的是,逐行读取文件,然后用该行的电影名去获取电影信息.因为源文件较大,readlines()不能完全读取所有电影名,所以我们逐行读取. 就这段代码,我想要在位置二处使用base64,然后结果呢? ...

  5. java云盘_云盘的JAVA简单实现

    [实例简介] 网络硬盘,用jsp+struts+spring编写完成.实现文件管理,文件上传,下载,用户信息管理功能! [实例截图] [核心代码] disk-ssh └── disk ├── src ...

  6. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  7. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  8. 做Java头发少_这35个Java代码优化细节,你用了吗

    链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...

  9. java session使用_使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言.如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响.您还在开发环境中安装了N ...

  10. java类加载过程_面试官:java类的加载过程

    Java 类加载机制 类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载七个阶段. 其中类加载过程包括加载.验证.准备.解析和初始化五个阶段. 类的加载 ...

最新文章

  1. constrctor,prototype,__proto__
  2. golang json判断类型
  3. 接口测试(java+testng+ant+jenkins)第三篇ant
  4. this指针不全等于对象地址
  5. mysql 表与表之间的条件比对_《MySQL数据库》关联查询
  6. java 输入框_Java文本框和文本区的输入输出
  7. Microsoft Excel 不能访问文件
  8. 字节跳动最新简单算法面试题
  9. Android04-UI01常用控件
  10. LINUX编译Android doubango
  11. 基恩士扫码枪SR2000系列通讯
  12. [阅读笔记]专访刘毅:阿里巴巴云计算平台运维故障分析与排查
  13. 字节序Endian与字节序标记BOM详解
  14. [转]ubuntu常用软件
  15. mysql choose when_mybatis 基础(二) 动态sql 关于where if / where choose when otherwise
  16. indesign在python中是什么意思_用Python做深度学习一:数学基础帖子详情 - 网易云课堂...
  17. QPBOC——数据认证
  18. JavaWeb题库整理
  19. python 爬取有道词典的翻译 *渔夫版
  20. 邮箱服务器满了foxmail,foxmail邮箱的容量满了,应该怎样删除-上海腾讯企业邮箱[foxmail]...

热门文章

  1. Mysql 面试实战系列(四)——快马扬鞭
  2. Vss2005使用相关文章
  3. 输出任意边长的菱形————C语言实践应用(1)(完整源码)
  4. Ubuntu17.04 安装搜狗中文输入法
  5. javascript【写法规范】
  6. 数塔问题(数字三角形)
  7. 学生用计算机的按键名称,电脑的各键名称及用途
  8. java Instant
  9. 如何使用音频转换器快速转换音频格式?
  10. 《程序员修炼之道:从小工到专家》读书笔记