刷题笔记02-递归
f(n)=f(n-1)+f(n-3)
母牛的故事
[递归]母牛的故事 - C语言网 (dotcpp.com)](https://www.dotcpp.com/oj/problem1004.html)
题目描述:
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
思路:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r3hKiT3X-1679648283281)(D:\code\算法刷题笔记\img\母牛.png)]
代码:
#include<stdio.h>
int main()
{
int n = 0;
int ans = 0;
int arr[55] = { 0 };
for (int i = 1; i < 5; i++) {
arr[i] = i;
}
while (scanf("%d", &n))
{
if (n == 0)
break;
else if (n < 5)
printf("%d\n",arr[n]);
else
{
for (int i = 5; i < n+1; i++)
{
arr[i] = arr[i - 1] + arr[i - 3];
}
printf("%d\n", arr[n]);
}
}
return 0;
}
文章讲述了如何使用递归解决母牛故事问题,即计算在第n年时共有多少头母牛。这个问题通过定义递推关系f(n)=f(n-1)+f(n-3)来解决,代码使用C语言实现,并初始化了一个数组来存储前5年的母牛数量。程序读取用户输入的年份n,然后计算并输出相应的母牛总数。
20

被折叠的 条评论
为什么被折叠?



