1044 - 小明养猪的故事

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

话说现在猪肉价格这么贵,小明也开始了养猪生活。说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪。
不过光生小猪也不行,小明采用了一个很奇特的办法来管理他的养猪场:
对于每头刚出生的小猪,在它生下第二头小猪后立马被杀掉,卖到超市里。
假设在创业的第一天,小明只买了一头刚出生的小猪,请问,在第N天晚上,小明的养猪场里还存有多少头猪?

题目输入

测试数据的第一行是一个正整数T,代表测试数据的个数。接下来有T组测试,每组测试数据占一行,分别是一个正整数N,代表小明创业的第N天。(0<N<20)

题目输出

对于每组数据,请在一行里输出第N天晚上养猪场里猪的数目。

输入/输出样例

输入格式

2
2
3

输出格式

2
3

C语言解答

#include<stdio.h>

int main()
{
    int t,i,n,a[20];
    a[0]=1;
    a[1]=2;
    for(i=2;i<19;i++)
    	a[i]=a[i-1]+a[i-2];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%d\n",a[n-1]);
    }
    return 0;
}

C++解答

#include<stdio.h>

int main()
{
    int t,i,n,a[20];
    a[0]=1;
    a[1]=2;
    for(i=2;i<19;i++)
    	a[i]=a[i-1]+a[i-2];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%d\n",a[n-1]);
    }
    return 0;
}

Java解答

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;
import java.math.*;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String[] zong = in.nextLine().split(" ");
		int start = Integer.parseInt(zong[0]);
		 for(int i=0;i<start;i++){
		 String[] zong1 = in.nextLine().split(" ");
		int c=Integer.parseInt(zong1[0]);
		System.out.println(jc(c));
		 }

	}

	public static int jc(int i) {
		int k = 0;
		if (i == 0) // 0的阶乘=1
			return 1;
		else if (i > 0) {// 0继续递归
			k = jc(i - 2) + jc(i - 1);
		}
		return k;
	}
}

Python解答

for i in range(0, int(input())):
    a = [1, 2] * 10
    j = int(input())
    for n in range(2, j):
        a[n] = a[n - 1] + a[n - 2]
    print a[j - 1]