3523 - 杰克的小牛

若一头小母牛,从出生起第四个年头开始每年生一头母牛,杰克第一年有一头刚出生的小母牛,问第

 n 年杰克共有几头母牛?

题目输入

第一行一个整数 t (t < 50),表示 t 组数据;

下面每行一个整数 n (n < 50)。


题目输出

对于每组数据 n ,输出第 n 年杰克有多少头牛。


输入/输出样例

题目输入

3
1
3
4

题目输出

1
1
2

C语言解答

#include<stdio.h>
int main()
{
	int	i,m,n,a[100]={0,1,1};
	scanf("%d",&n);
	while(n--)
	{	
		scanf("%d",&m);
		for(i=3;i<=m;i++)
			a[i]=a[i-1]+a[i-3];
		printf("%d\n",a[m]);
	}
	return 0;
}

C++解答


#include <cstdio>
#include <iostream>
#define for1( i , a , b ) for( int i = a ; i <= b ; i++ )
using namespace std ;

class Jack
{
	public:
		void play() ;
	protected:
		int n , a , f[ 55 ];
		
} ;
void Jack::play()
{
	//freopen( "in.txt" , "r" , stdin ) ;
	//freopen( "out.txt" , "w" , stdout ) ;
	f[ 1 ] = f[ 2 ] = f[ 3 ] = 1 ;
	for1( i , 4 , 50 ) f[ i ] = f[ i - 1 ] + f[ i - 3 ] ;
	scanf( "%d" , &n ) ;
	while( n-- ) {
		scanf( "%d" , &a ) ;
		printf( "%d\n" , f[ a ] ) ;
	}
}
int main()
{
	Jack J ;
	J.play() ;
	return 0 ;
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题