111,097
社区成员




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();
}
}