[转]C#算法 有一个农场有一头成年母牛,每三个月后一头小牛,小牛一年后长大,长大后每三个月又可以生一头小牛,如此循环,问n年后农场一共有多少牛?
2012-10-04 10:35
591 查看
/// <summary> /// 母牛 /// 有一个农场有一头成年母牛,每三个月后一头小牛,小牛一年后长大,长大后每三个月又可以生一头小牛, /// 如此循环,问n年后农场一共有多少牛? /// </summary> class Cattle { public int year; public int timeUint;//时间单位(3个月为一个单位) public int initialNum; public Cattle(int year) { this.year = year; this.timeUint = year * 4; //第一头母牛和它生的小母牛,为初始值。(每三个月生一头小牛,一年生4头小牛) this.initialNum = year * 4 + 1; } /// <summary> /// 方法一 /// </summary> /// <param name="timeunit"></param> /// <param name="num"></param> public void GetCattle(int timeunit,ref int num ) { //小牛生小牛需要5个时间单位。(小牛一年后长大,长大后每三个月又可以生一头小牛) //即拥有生育能力的小牛比上一代少5头。 int nextGeneration = timeunit - 5; for (int i = nextGeneration; i > 0; i--) { num += i;//下一代的数目 GetCattle(i, ref num);//下下一代 } } /// <summary> /// 方法二 /// </summary> /// <param name="time">时间单位</param> /// <returns></returns> public int CalcCattle(int time) { if (time <= 5) return time + 1; else return CalcCattle(time - 1) + CalcCattle(time - 5); } }
主函数
do { Console.WriteLine("请输入时间:"); int n = Convert.ToInt32(Console.ReadLine()); Cattle cattle = new Cattle(n); cattle.GetCattle(cattle.timeUint, ref cattle.initialNum); Console.WriteLine("方法一,第{0}年母牛的数量为{1}", n, cattle.initialNum); int num = cattle.CalcCattle(cattle.timeUint); Console.WriteLine("方法二,第{0}年母牛的数量为{1}", n, num); Console.WriteLine("是否继续,Y/N ?"); } while (Console.ReadLine().ToLower() == "y");
相关文章推荐
- 一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛
- 有一头小母牛。从第四年起每年生一头小母牛。生的小母牛也是从第四年起每年生一头小母牛。如此循环。编程求N年后有多少头母牛。。。。。。。
- C#算法 有一个母羊,第2年和第4年可以生一头小母羊,在第5年死去,小母羊在它出生的第2年和第4年生小母羊,第5年死去
- 一个牧场目前一共有20头刚出生的羊,母羊、公羊各一半。假如母羊5岁时后每年生一胎(母羊,公羊各一半)。羊活到10岁后死亡。请问20年后这个牧场有多少只羊? 请用C#写出算法。
- 果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,接着第二头熊重复这一过程,即先均分n份,扔掉一个然后拿走一份,以此类推直到最后一头熊都是这样(最后一头熊扔掉后可以拿走0个,也算是n份均分)。问最初这堆苹果最少有多少个。
- [转]C#算法 一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算,第n年末总共会有多少对兔子
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 求总共有多少总跳法,并分析算法的时间复杂度
- 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。
- 农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问20年后农场一共有多少头牛?(用面向对象的思想)
- 一个java面试题:一个农夫养了一头牛,三年后,这头牛每年会生出一头牛,生出来的牛三年后又可以每年生出一头牛,不考虑牛的性别和生死,问农夫10年后有多少头牛?
- 有一个母羊,第2年和第4年可以生一头小母羊,在第5年死去,小母羊在它出生的第2年和第4年生小母羊,第5年死去,求第N年有多少个母羊
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 求总共有多少总跳法,并分析算法的时间复杂度。
- 一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。 //求总共有多少总跳法,并分析算法的时间复杂度
- 每天学习一算法系列(25)(一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。)
- 写一个算法,使对象可以像数组一样进行foreach循环,要求属性必须是私有的(Interator模式的PHP5实现,写一类实现Interator接口)
- 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n
- 算法实战:给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大?
- 农场一头小母牛,每年生头小母牛,母牛5岁产母牛,20年上多少牛?--java面向对象方式实现
- 【微软100题】一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度