C语言网刷题笔记-1004
题目
解法1
先创建一个数组,提前计算好各天对应的奶牛数量,这样做的好处是运行速度快;
#include<stdio.h>
int main()
{
int n,i;
int a[100]={1,2,3,4};
for(i=4;i<100;i++)
{
a[i] = a[i-1]+a[i-3]; //递归思想
}
while(scanf("%d",&n) && n)
{
if(n<0||n>=55)
{
continue;
}
else
{
printf("%d\n",a[n-1]);
}
}
}
解法2
编写一个递归函数,调用递归函数
#include<stdio.h>
int ite(int n)
{
if(n<5)
{
return n;
}
else
{
return(ite(n-1)+ite(n-3));
}
}
int main()
{
int n;
while(scanf("%d",&n) && n)
{
if(n<0||n>=55)
{
continue;
}
printf("%d\n",ite(n)); //递归函数
}
}
题目图片来源链接:https://www.dotcpp.com/oj/problem.php?id=1004