一:统计每个月兔子的总数_牛客题霸_牛客网 (nowcoder.com)
#include <stdio.h>
// int fab(int n)
// {
// if(n==1 || n==2)
// {
// return 1;
// }
// return fab(n-1)+fab(n-2);
// }
int main() {
int n = 0;
scanf("%d", &n);
int rabbit = 1;
int born = 1;
if(n==1 || n==2)
{
printf("%d",rabbit);
}
else
{
for(int i = 2; i < n; i++)
{
rabbit += born;
born = rabbit-born;
}
printf("%d",rabbit);
}
return 0;
}
#include <stdio.h>
int fab(int n)
{
if(n==1 || n==2)
{
return 1;
}
return fab(n-1)+fab(n-2);
}
int main() {
int n = 0;
scanf("%d", &n);
printf("%d",fab(n));
return 0;
}
本质上就是一个斐波那契数列的扩展应用。
非递归的方法还是有点不太理解,下次刷的时候再看下吧。