有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子
,假如兔子都不死,问每个月的兔子总数为多少?
//头文件
#include <stdio.h>
#include <stdlib.h>
//自定义函数
int rabbit(int month)
{
//当为第一个月和第二个月时
if(month==1 || month==2)
{
return 1;
}
//递归函数
else
{
return rabbit(month-1)+rabbit(month-2);
}
}
//主函数
int main(void)
{
//声明接收用户输入的变量类型
int month;
printf("请输入当前是第几个月:\n");
scanf("%d",&month);
//rabbit(month)调用自定义函数
printf("当前兔子对数为:%d",rabbit(month));
//程序暂停
system("pause");
//程序正常退出
return 0;
}
使用python实现
# 导入时间模块
import time, os
# number = int(input("请输入当前是第几个月:"))
# 自定义函数
def rabbit(number):
# 判断月份是否是1、2
# 不是则递归
if number == 1 or number == 2:
return 1
else:
rabbit_number = rabbit(number - 1) + rabbit(number - 2)
return rabbit_number
# 使用for循环打印1到24月的兔子数量
for i in range(1, 24):
# 程序开始时间
start = time.time()
print("当时是:{}个月,兔子有:{}对".format(i, rabbit(i)))
# 程序结束时间
end = time.time()
print("当前执行用时:{:.2f}秒".format(end - start))
# 程序暂停
os.system("pause")