c语言新手求解

题目描述小明最近新买了一个房间,为了给它做装修,想要给它铺上地砖。然而现有的地砖只有两种规格分别为1米*1米、2米*2米,由于小明买的房间有点小,宽度只有3米,长度为N米... 题目描述
小明最近新买了一个房间,为了给它做装修,想要给它铺上地砖。然而现有的地砖只有两种规格分别为1米*1米、2米*2米,由于小明买的房间有点小,宽度只有3米,长度为N米。当然这样一个房间也足够他自己一个人住了。那么如果要给这个房间铺设地砖,且只用以上这两种规格的地砖,请问有几种铺设方案。
输入格式
输入的第一行是一个正整数C,表示有C组测试数据。接下来C行,每行输入一个正整数n(1<=n<=30),表示房间的长度。
输出
对于每组输入,请输出铺设地砖的方案数目。
样例输入
2
2
3
样例输出
3
5
这些是题目.......下面是我的程序.....我的程序交上去是编译错误.....求大神
#include<stdio.h>
int main()
{
int n,c,a[30],b,i,j;
scanf("%d",&c);
for(i=0;i<c;i++)
{
scanf("%d",&n);
if(n==1)
a[0]=0;
b=6;
for(j=3;j<30;j++)
{
a[1]=2;a[2]=4;
a[j]=b+2*a[j-2];
b=b+2;
printf("%d\n",a[j]);
}
printf("%d\n",a[n-1]+1);}
}
展开
 我来答
李康819
2013-10-25 · TA获得超过128个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:114万
展开全部
考虑加了一米的情况,最后一米只用1X1的,有a[j-1]种情况;用2X2的,有2*a[j-2]种情况;
#include<stdio.h>
int main()
{
int n,c,a[30],b,i,j;
scanf("%d",&c);
for(i=0;i<c;i++)
{
scanf("%d",&n);
if(n==1)
a[0]=0;
// b=6;
for(j=3;j<30;j++) //这里可以优化一下,把30换成n,缩短程序运行时间
{
a[1]=3;a[2]=5;
a[j]=a[j-1]+2*a[j-2];//这是公式,不知道你的b=6是干什么的
// b=b+2;
// printf("%d\n",a[j]);
}
printf("%d\n",a[n-1]);
}
}
蓉雪球
2013-10-23 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:712万
展开全部
或者你干脆改成void main()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tdlikelei
2013-10-23 · TA获得超过536个赞
知道小有建树答主
回答量:417
采纳率:58%
帮助的人:164万
展开全部
return 0;
没写呀。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式