old macdonald
Old MacDonald Had A Farm
Time limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic
Problem Description
Old MacDonald Had A Farm, cycyk~
老麦克唐纳德有一个农场,农场里有马、兔、牛三种动物。开始时他有母马、母兔、母牛各 1 只。
对于每头母马,它从第二年起每年年初生一头小母马。每头小母马从第二个年头开始,每年年初也生一头小母马。
对于每只母兔,它从第二年起每年年初生一只小母兔。每只小母兔从第三个年头开始,每年年初也生一只小母兔。
对于每头母牛,它从第二年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。
现在老麦克唐纳德想知道,第 n 年时他总共有多少只动物(这里只考虑母马、母兔和母牛)?
Input
输入数据有多组(数据组数不超过 100),到 EOF 结束。
对于每组数据,输入 1 行,包含 1 个整数 n (1 <= n <= 30),表示询问的年数。
Output
对于每组数据,输出 1 行,包含 1 个整数,表示答案。
Sample Input
1
2
3
4
Sample Output
3
6
10
17
Hint
第 1 年时,老麦克唐纳德有母马 1 头、母兔 1 只、母牛 1 头。
第 2 年时,老麦克唐纳德有母马 2 头、母兔 2 只、母牛 2 头。
第 3 年时,老麦克唐纳德有母马 4 头、母兔 3 只、母牛 3 头。
第 4 年时,老麦克唐纳德有母马 8 头、母兔 5 只、母牛 4 头。
Source
【2016级《程序设计基础(B)II》期末上机考试-第一场】bLue
#include <stdio.h>
#include <stdlib.h>
//就是看老的加上新的,而老的就是上一年的,新的是看i-(几年生-1)的动物数
int ma[31],niu[31],tu[31];
int maa(int n)
{
int i;
ma[1]=1;
if(n>1)
{
for(i=2; i<=n; i++)
{
ma[i]=2*ma[i-1];
}
}
return ma[n];
}
int tuu(int n)
{
int i;
tu[1]=1;
tu[2]=2;
if(n>2)
{
for(i=3;i<=n;i++)
{
tu[i]=tu[i-1]+tu[i-2];
}
}
return tu[n];
}
int niuu(int n)
{
int i;
niu[1]=1;
niu[2]=2;
niu[3]=3;
if(n>3)
{
for(i=4;i<=n;i++)
{
niu[i]=niu[i-1]+niu[i-3];
}
}
return niu[n];
}
int main()
{
int n,s;
while(~scanf("%d",&n))
{
s=maa(n)+tuu(n)+niuu(n);
printf("%d\n",s);
}
return 0;
}
思路在上面
相关阅读
farmskins是一个可以开出CSGO皮肤的网站,但是开出来的皮肤又比官方的好一点,更比诸如igxe或者playskins,hellcase的csgo开箱网站好很