铺砖
时间限制: 1 Sec 内存限制: 128 MB题目描述
用1 x 1和2 x 2的磁砖不重叠地铺满N x 3的地板,共有多少种方案?
输入
仅一行包含一个正整数 N ( 1 <= N <= 1000 )。
输出
单独一行包含一个整数表示方案数,由于结果可能很大,你只需要输出这个答案mod 12345的值。
样例输入
2
样例输出
3
题目解析
:
发现了什么规律?方案数1→3是乘2加1, 3→5是乘2减1, 之后就是加/减循环,因此能用“for循环”很容易地实现。
代码如下:
# include<stdio.h>
int a[1005];
int main(){
int n;
scanf("%d",&n);
int k=1;
a[1]=1;
a[2]=3;
for(int i=3;i<=n;i++)
{
if(i%2==0)
a[i]=(a[i-1]*2)%12345+1;
else a[i]=a[i-1]*2%12345-1;
a[i]=a[i]%12345;
}
printf("%d\n",a[n]%12345);
return 0;
}