ACM超级细菌(递归算法实现)


题目描述
一般人们把对几乎所有抗生素有抗药性的细菌统称为超级细菌。有一个超级细菌,它每秒增殖出一个小细菌。每个小细菌经过生长,从第四秒开始,每秒也生一个小细菌。请编程实现在第n秒的时候,共有多少个细菌?假设超级细菌不会死亡或者消失。

输入

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<30),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

输出

对于每个测试实例,输出在第n秒的时候细菌的数量。
每个输出占一行。

样例输入

2 4 5 0

样例输出

2 4 6
#include<stdio.h>  
#include<math.h>  
#include<string.h>  
int f(int n)  
{  
    if(n<4) return n;  
    else return (f(n-3)+f(n-1));  
}  
int main ()  
{  
    int n;  
    while (`scanf("%d",&n)&&n){  
    printf( "%d\n",f(n));  
    }  
    return 0;  
}  


猜你喜欢

转载自blog.csdn.net/qq_30007603/article/details/80560250