易截截图软件、单文件、免安装、纯绿色、仅160KB

经典的农夫养牛问题(Java实现)

问题描述:一个农夫养了一头牛,三年后,这头牛每年会生出1头牛,生出来的牛三年后,又可以每年生出一头牛……问农夫10年后有多少头牛?n年呢?(用JAVA实现)
问题解析:
1)在这个问题中,要注意每头牛生产的时间:
     第一头牛三年后才会生出一头新的牛(注意是三年后,而不是第三年),将农夫开始养牛的时间点设为第0年;
     可以设置一个每一头牛的年龄:age(初始值等于0),当age>=3后,每一年生出一头小牛;
2)对牛的计数,设置一个总的计数器count=1(原先有牛1头);
3)这个问题的解决要用到递归:第一头牛三牛后每一年生出一头小牛,然后小牛的行为与它的母亲相同(递归);
4)注意递归程序的结束条件判断:当总时间到达第10年后(当然,也可以自己设定自己需要的时间),递归结束;
下面是我写的Java代码:
public class RaiseCowByRecursive { 
 
 public static void main(String[] args) {
  
  for (int i=0; i<=10; i++) {
   System.out.println("第" + i + "年:" + "农夫所养牛的总数:" + getCows(i) + "头");
  }
  
 }//end main
 
 private static int getCows(int age) { //根据牛的年龄来计算牛的总数
  
  //1)当牛的年龄小于3时,农夫的牛的总数为1
  //2)当牛的年龄大于等于3时(表示三年后),该牛每年产生1头牛,并且加上它所生的牛的总数(递归)
  int countCows = 0;
  if (age < 3) {
   countCows = 1;
  } else {
   countCows = 1;
   for (int i=0; i<=age-3; i++) {
    countCows += getCows(i);
   }
  }//end if-else
  return countCows;  
 }//end getCows
}


相关文档:

java操作xml(sax,dom,jdom,dom4j)增删改查

最近在工作中,经常设计报表(ireport+jasperReport)反复和设计模板xml打交道,于是就有了写这篇文章的想法了。java操作xml主要是有四种方式:dom,sax,jdom,dom4j。这四种方式各有优缺点:(以下比较是来自网络)
1:DOM4J性能最好,连Sun的JAXM也在用DOM4J.目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate ......

Java关键字final、static使用总结

常看很多入门鸟们在final 和static运用上感到迷茫,现总结一下final和static的运用方法,希望对大家有帮助。
(我也是菜鸟)
一、final
根据程序上下文环境,Java关键字final有“无法改变”或者“终态”的含义,它可以修饰非抽象类、非抽象类成员方法和变量。
final类不能被继承,没有子类,final ......

JAVA得到网卡物理地址(windows和Linux)

在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于ProcessBuilder这个类,这个类是JDK1.5新加的,以前也可以用Ru ......

java面试题集

一、Java基础知识
1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。
2.字符串的操作:
  写一个方法,实现字符串的反转,如:输入abc,输出cba
  写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。
3.数据类型之间的转换
  如何将数值型字符转换为数字(Intege ......

java中的类

      类是一个抽象的概念,是指把具有相同属性和相同行为特征的对象归为一体
      而对象就是一个具体的事物,它是属于某个类的一个特例     
      在一个类中,只有属性定义和方法定义部分,其他语句都是错误 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号