Rabbit繁殖

houqidian 2010-04-24 08:24:50
今有一对成年兔子,每一个月能繁殖一对幼兔,幼兔需要m个月才能成熟,请问d个月后有多少兔子?
程序输入m和d,输出number 如:
input:
2 3
output:
5
...全文
223 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
skep99 2010-04-25
  • 打赏
  • 举报
回复
斐波那契数列的作业题,自己写写比较好
企-鹅 2010-04-25
  • 打赏
  • 举报
回复
搜索下 “斐波那契数列”
王集鹄 2010-04-25
  • 打赏
  • 举报
回复
让我想起了N年前,刚学编程的时候,也就是从无数作业题开始的
可以用三种方法实现:循环、递归、数学公式
循环楼主就自己写吧。

参考如下代码:
class Program
{
static int count = 0; // 繁殖次数
// 递归方法
static int Calc(int m, int d, int adults, int child)
{
Console.WriteLine("第{0}次繁殖成年兔子{1}对,小兔子{2}对", count++, adults, child);
if (d < m) // 周期不够繁殖
return adults + child;
adults += child; // 小兔成熟归为大兔子
return Calc(m, d - m, adults, adults);
}

static void Main(string[] args)
{
var m = 0;
var d = 0;
while (true)
{
Console.Write("输入几月才能成熟?(1-10)");
if (int.TryParse(Console.ReadLine(), out m) && m > 0 && m <= 10)
break;
Console.WriteLine("格式不正确,请重新输入。");
}
while (true)
{
Console.Write("输入准备饲养几月?(1-100)");
if (int.TryParse(Console.ReadLine(), out d) && d > 0 && d <= 100)
break;
Console.WriteLine("格式不正确,请重新输入。");
}
var r = Calc(m, d, 1, 0); // 递归的方法
Console.WriteLine("兔子{0}月才能成熟,一对兔子饲养{1}月后得到{2}对({3}只)兔子", m, d, r, r * 2);
r = (int)Math.Pow(2, d / m); // 纯数学的方法就是指数计算
Console.WriteLine("兔子{0}月才能成熟,一对兔子饲养{1}月后得到{2}对({3}只)兔子", m, d, r, r * 2);
Console.ReadKey();
}
}


衍生的问题:这个题目没有考虑整数溢出的情况
设“m=1 d=100”,那就是2的100次方(12676506000000000000000000000对兔子),这些兔子地球是装不下了。
jackmtlee 2010-04-25
  • 打赏
  • 举报
回复
递归里的非列蜡笔数列
when1091 2010-04-25
  • 打赏
  • 举报
回复
好像有很多解法
houqidian 2010-04-25
  • 打赏
  • 举报
回复
继续顶 1 100 就是2的100次方这是这道题目的隐含 难点 需要高进度 继续求解 能够用最简短的代码解决
王集鹄 2010-04-24
  • 打赏
  • 举报
回复

d=2
m=3

繁殖周期两个月
三个月内,只能繁殖一次
一对(2只)兔子繁殖一对(2只)小兔子
也就是4只兔子
难道楼主把肚子里的0.5只也算进去了?
threenewbee 2010-04-24
  • 打赏
  • 举报
回复
的确很简单的题目。

可以用递推。
houqidian 2010-04-24
  • 打赏
  • 举报
回复
我顶 定定
ChrisAK 2010-04-24
  • 打赏
  • 举报
回复
这种作业题还是自己处理的好...
houqidian 2010-04-24
  • 打赏
  • 举报
回复
补充 `1<=m<=10 1<=d<100

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧