题目 1004: [递归]母牛的故事
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
样例输入
2
4
5
0
样例输出
2
4
6
年份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
母牛数量 | 1 | 2 | 3 | 4 | 6 | 9 | 13 | 19 | 28 |
#include<stdio.h>
#include <stdlib.h>
int main()
{
int niu(int n);
int n[55],sum=0,i=1,n1=1;
do
{
scanf("%d",&n[i]);
}
while(n[i++]!=0);
i=1;
while(n[i]>=0)
{
sum=niu(n[i]);
printf("%d\n",sum);
i++;
}
}
int niu(int n)
{
int sum=0,i=1,n1=1;
if(n>0&&n<=4)
{
return n;
}
if(n>4)
{
return niu(n-1)+niu(n-3);
}
if(n==0) exit(0);
}
斐波那契数列的公式:fn=fn-1+fn-2(n>2)。
这道题得用斐波那契数列公式进行寻找规律。
写成分段函数的形式就是:
n ,n<=4
f(n)= (没法打大括号,各位将就看)
f(n-1)+f(n-3) ,n>4
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)