不容易系列之(3)—— LELE的RPG难题(递推)


f[1]=3;

f[2]=6;

f[3]=6;

               i>3 时,假如i-1个格子填的颜色与第一个格子颜色不相同,那么我们填第i个格子时,只能填一种颜色,此颜色与第一个格子和i-1个格子的颜色都不相同,数量是f[i-1](因为这样前i-1个格子的颜色符合要求);

假如i-1个格子填的颜色与第一个格子的颜色相同,那么我们填第i个格子时,可以就填两种颜色,数量是f[i-2](因为这样只有前i-2个格子的颜色是符合要求的)。


#include <stdio.h>
__int64 f[55];
void solve()
{
	int i;
	f[1]=3;
	f[2]=6;
	f[3]=6;
	for(i=4;i<=51;i++)
		f[i]=f[i-1]+2*f[i-2];	
}
int main()
{
	int n;
	solve();
	while(scanf("%d",&n)==1)
	{
		printf("%I64d\n",f[n]);	
	}	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值