C语言每日一练——兔子繁殖问题 斐波那契数列

一个程序员家养 了一对刚出生的兔子,兔子出生第2月后每月都会生一对小兔子,小兔子出生后同样第2月后也会每月生一对兔子,这个程序员想知道如果兔子不死n月后家里会有多少对兔子
设计一个程序:输入n,输出兔子数量(2<n<30)

样例输入: 7
样例输出:13

样例输入: 12
样例输出: 144

int main() {
	int i,month;	//第一代兔子在一月出生,在第三个月生产,二月没有新兔子产生只有上一代兔子
	/*
	* month 1  2  3  4  5   6  7
	* sum   1  1  2  3  5   8  13
	*/
	printf("输入月份:");	
	scanf("%d", &month);
	int sum[40] = { 1,1 };		//第一个月兔子数量是1,第二个月兔子数量是1,第三个月兔子是1+1,第四个月是1+1 +1
	for (i = 2; i < month; i++) {  
		sum[i] = sum[i - 1] + sum[i - 2];
		
	}
	printf("%d月有%d只兔子", month, sum[month - 1]);
	return 0;
}

值得注意的是,该问题也可以用递归算法求斐波那契数列。递归算法,每次调用函数所使用的变量存放在不同的内存空间。递归调用的层次越多,同名变量占用的存储单元也就越多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值