细胞分裂算法问题

题目

有一个细胞,它每秒分裂一次。每个新分裂的细胞从第四秒开始,每秒也会分裂一个细胞。请编程实现在第n秒的时候,共有多少细胞?

输入

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0 n=0表示输入数据的结束,不做处理。

输出

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

思路

第一天 一个
2 ---- 2
3 ---- 3
4 ---- 4
5 ---- 6 = 4+第二天所有的细胞又分裂
6 ---- 7 = 6+第三天所有的细胞又分裂
.
.
第n天 ---- n-1天的数量 + n-3天的数量

代码

#include
#include
using namespace std;

int main()
{
	int year;
 	cin>>year;
 	int X[1000];
 	for (int i = 1; i <= year; i++) 
	 {
		if (i == 1) {
			X[i] = 1;
		} else if (i < 5) {
			X[i] = X[i - 1] +1;
		} else {
			X[i] = (X[i - 1] + X[i - 3]);
		}
		//sum += X[i];
	}
 	cout<<X[year]; 
	return 0;
}

你可能感兴趣的:(算法)