- 浏览: 431210 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
问题:一个农夫养了一头牛,三年后,这头牛每年会生出一头牛,生出来的牛三年后又可以每年生出一头牛....问农夫10年后有多少头牛,n年呢?
算法一:
算法二:
算法三:
算法四:
转载连接:http://hechuanzhen.iteye.com/blog/1845173
这个程序就是您的,有些难懂得地方,我用自己的想法加了注释
算法一:
package com.test; public class AlgorithmOne { /** * 动态规划算法 * @param args * 数组num中存储的是新生的牛的数目,这里的新生表示除了最开始的一头牛外的所有其他牛 * 例如:num[3]表示到第3年来新生的牛的数目 * num[i] = num[i-1]+num[i-3]+1; * 上面的式子表示:第i年的新牛数目为第i-1年的新牛数目加上第i-3年的新牛数目(因为第i-3年的牛仔第i年就会生小牛了), * 再加上最开始的那头牛在第i年也会生出一头牛 */ public static void main(String[] args) { final int size = 100; long [] num = new long[size+1]; num[0]=num[1]=num[2]=0; for(int i =3;i<=size;i++){ num[i] = num[i-1]+num[i-3]+1; System.out.println("第"+i+"年,牛的数量:"+(num[i]+1)); } } }
算法二:
package com.bean; public class Cow { private int age = 0; public void addAge(){ age++; } public boolean isCreatCrow(){ return (age>=3)? true:false; } }
package com.test; import java.util.ArrayList; import java.util.List; import com.bean.Cow; public class AlgorithmTwo { public static void main(String[] args) { List<Cow> cowList = new ArrayList<Cow>(); cowList.add(new Cow()); int yearCount = 10; for(int i =1;i<=yearCount;i++){ int cowNum = cowList.size(); for(int j=0;j<cowNum;j++){ Cow cow = cowList.get(j); cow.addAge(); if(cow.isCreatCrow()){ cowList.add(new Cow()); } } } System.out.println(yearCount+"年后将有"+cowList.size()+"头牛"); } }
算法三:
package com.test; public class AlgorthmThree { static int count = 1; private static void feedCow(int year,int age){ year++; age++; if(year<=10){ if(age>=3){ count ++; feedCow(year, 0); } feedCow(year, age); } } public static void main(String[] args) { new AlgorthmThree().feedCow(0, 0); System.out.println(count); } }
算法四:
package com.bean; public class CowBean { public static int count = 0; /** * 算法核心:该算法计算每头牛包括其后代在这10年内能生了多少小牛 * @param year * 每new一次CowBean就会执行count++ */ public CowBean(int year){ count ++; for(int i =3+year;i<=10;i++){ new CowBean(i); } } public static void main(String[] args) { new CowBean(0); System.out.println(count); } }
转载连接:http://hechuanzhen.iteye.com/blog/1845173
评论
2 楼
yangjianzhouctgu
2013-04-12
中国凉茶 写道
恩,重构的很好,比我的方便简单。

这个程序就是您的,有些难懂得地方,我用自己的想法加了注释
1 楼
中国凉茶
2013-04-12
恩,重构的很好,比我的方便简单。

发表评论
-
spring boot应用测试框架介绍
2018-07-19 14:44 771个人原创博客:spring boot应用测试框架介绍 -
可执行jar包的配置与运行
2017-06-04 19:42 1018spring boot项目可以以jar包的形式执行运行。s ... -
多线程并发
2016-05-21 23:49 0Splitter.on('|').trimResults(). ... -
jdk动态代理实现原理
2016-05-09 23:12 791jdk的动态代理即使用反射来实现,具体由Proxy、Invoc ... -
spring常见注解
2016-05-01 23:33 12431.Autowired 通过spring的依赖注入功能来 ... -
spring常见配置作用
2016-04-29 23:08 951一般应用中常见spring的 ... -
数据来自两个系统时的内存分页算法
2016-04-24 23:12 859业务数据来自a-app与b-app,其中a-app中数据的业务 ... -
linux下java web开发环境搭建
2016-04-10 14:09 1146一般的java web开发涉及到的开发工具有:jdk、tomc ... -
linux下md5sum和DigestUtils.md5Hex的关系
2015-12-19 22:30 8552本文对linux下md5sum命令和java中DigestUt ... -
基于jersey的web service
2015-11-22 22:55 1024本文是基于jersey的web service 的两个小例子, ... -
面试总结----spring
2015-05-19 22:17 922spring在面试中经常被 ... -
面试总结----多线程
2015-05-18 22:10 919面试过程中,多线程被问到的概率非常大,差不多都会问的。 下面 ... -
面试总结----java虚拟机
2015-05-17 23:20 752在面试过程中,java虚拟机被问到的概率非常大,应该是每场面试 ... -
面试总结----java集合
2015-05-17 11:57 684春节刚过,打算换一份工作,于是就开始了一段准备面试的生活,准备 ... -
json串与对象之间转换的几种实现方式
2015-01-24 18:56 1886这里使用了gson,fastjson,jackson,json ... -
google关于事件的生产者消费者模式实现例子
2015-01-24 11:28 993google使用生产者/消费者模式实现了事件的产生传播处理过程 ... -
图形化显示---冒泡排序
2014-12-05 22:17 934代码: package com.thread.singal ... -
多线程----wait/notify
2014-11-06 22:06 698线程同步:两个线程依次对同一变量进行操作。 packag ... -
多线程-----阻塞队列
2014-11-05 22:43 859使用一个线程将一个指定目录下面的所有文件放在一个阻塞队列中,用 ... -
迷宫的最短路径
2014-08-19 00:31 3772代码如下: package com.chapterO ...
相关推荐
JavaCV的主要目标是简化Java开发者在计算机视觉领域的编程工作,使其能够轻松地调用C++和C实现的高效算法。在`javacv-platform-1.5.4`中,可能包含以下关键组件: 1. **OpenCV**: OpenCV是一个广泛使用的开源计算机...
首先,OpenCV是JavaCV的核心部分,它是一个广泛使用的计算机视觉库,包含了众多图像处理和计算机视觉算法。在JavaCV 1.3中,你可以找到用于图像处理、特征检测、对象识别、人脸识别等功能的API。例如,高斯模糊、...
在Java实现中,`BaseBoxChoose.java`可能包含了装箱算法的基本策略或基类,定义了装箱选择的接口和通用方法。`Slaves.java`可能是处理并行计算的部分,利用多线程并行处理多个箱子的装车问题,提高算法执行效率。`...
java实现国密算法gm-java-main.zip
google-java-format是一个重新格式化 Java 源代码以符合 Google Java Style的程序。 使用格式化程序 从命令行 下载格式化程序 并运行它: java -jar /path/to/google-java-format-${GJF_VERSION?}-all-deps.jar ...
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
java-string-similarity, 各种字符串相似性和距离算法 java-string-similarity 实现不同字符串相似度和距离度量的库。 目前已经实现了许多算法( 包括Levenshtein编辑距离和 sibblings,jaro winkler,最长公共子序列...
压缩包内的"Java版-剑指offer数据结构与算法 视频教程 下载 百度网盘链接2.txt"文件很可能是提供视频教程的下载链接,通过观看这些视频,学习者可以直观地了解如何在Java环境中实现和应用各种数据结构和算法,同时...
在Java中实现K-Means算法,我们需要理解以下几个核心步骤和相关概念: 1. **初始化**:首先,我们需要选择K个初始质心(centroid),通常是随机选取数据集中的K个点作为初始中心。这些质心将成为簇的代表。 2. **...
算法 - Java Build Discord chat Gitpod ready-to-code Open in Gitpod 您可以运行和编辑算法,或者只需单击一下即可使用 Gitpod.io(免费的在线开发环境)为算法做出贡献。 算法: 我们的目录包含完整的应用程序...
Lzma压缩文件算法-java单文件版,编译直接通过,压缩率极高
银行家算法-java语言
在"JAVA---算法与数据结构"这个主题中,我们将深入探讨Java中常用的数据结构,如数组、链表、栈、队列、集合、映射、树(二叉树、红黑树)和图等。每种数据结构都有其独特的优势和适用场景,例如,数组适合随机访问...
这是从mathwork上下载的NSGA-3的代码,自己写的...就是希望能和大家一起讨论交流一下,希望大家指正。希望弄懂代码的小伙伴能回帖说一下自己的理解。也希望能解答一下我不懂的地方。 这里把原代码的链接也发一下。...
【标题】"sun-java6-jdk" 是Oracle公司(前身为Sun Microsystems)为Java开发环境提供的一个关键组件,它包含了Java Development Kit(JDK),是Java编程语言的基础工具集。这个压缩包文件提供了用于开发、编译、...
Java实现的k-means聚类算法详解 k-means聚类算法是一种常用的无监督学习算法,用于对数据...Java实现的k-means聚类算法是一种常用的数据分析工具,能够帮助数据分析师和数据科学家发现隐藏在数据背后的规律和模式。
北京工业大学--算法作业4--回溯算法--任务分配--Java 有n份作业分配给n个人去完成,每人完成一份作业。假定第i个人完成第j份作业需要花费cij时间, cij>0,1≦i,j≦n。试设计一个回溯算法,将n份作业分配给n个人完成...
总之,Java K-Means可视化程序结合了数据处理、机器学习算法和图形用户界面设计,为理解和应用K-Means提供了一个实用的工具。通过深入研究这个程序,不仅可以掌握K-Means算法,还能提升Java编程和数据可视化的技能。
在本资源中,“高级算法-nju-onlineJudge-master-java和python的答案”主要涵盖了计算机科学领域中的高级算法,并且提供了针对NJU(南京大学)在线评测系统onlineJudge的解答,包括Java和Python两种编程语言的实现。...