我读书少,你们得帮帮我

题目传送门

解题思路:

通读全文,得知,从一到二十年愚公家族只有一个人,从二十一到四十年,每年愚公家族增加一个人,从四十一到六十年,每年增加两个人。我一开始的思路是分段函数,当(0<n<=20) a = 1;(20<n<=40) a = n-19 ; (40<n<=60) a= 2n-59 ;但是C语言不能实现……请教大神之后说是思路错误……
换思路:联想斐波那契数列,采用递推或递归的思想,下面上斐波那契的代码:

我读书少,你们得帮帮我

同理可得该题的递推思想,不多说,上代码
#include <stdio.h>
int f(int n)
{
    if(n >= 1 && n <= 20)
        return 1;
    else if(n >= 20 && n <= 40)
        return f(n-1)+1;
    else if(n >= 40 && n <= 60)
        return f(n-1) + f(n-20);
}
int main()
{
    int n;
    while(scanf("%d",&n) != EOF)
        printf("%d\n",f(n));
    return 0;
}

【PS:怎么说呢?就感觉自己还是没有摸到C语言的皮毛,不知道看到一道题的正确思路,多多看题吧!!】