推公式解决的题目 hdu2018

来源:互联网 发布:linux启动关闭tomcat 编辑:程序博客网 时间:2024/06/18 16:45

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
INPUT:
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n (0 《 n 《 55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
OUTPUT:
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
sample input
2
4
5
0

sample output
2
4
6

代码如下:

#include<stdio.h>#include<stdlib.h> #include<string.h>int main(){       int n;    int i;    long a[57];    scanf("%d",&n);    while(n != 0)    {        a[1]=1;        a[2]=2;        a[3]=3;        a[4]=4;        if(n<5)        {            printf("%d\n",a[n]);        }        else        {            for(i=5;i<=n;i++)            {                a[i] = a[i-1] + a[i-3];            }            printf("%d\n",a[n]);            memset(a,0,sizeof(a));        }        scanf("%d",&n);    }    return 0;}       
0 0