问题标题: 酷町堂:一道题

0
0
已解决
陈曦
陈曦
资深天翼
资深天翼
#include<iostream>
#include<cstring>
using namespace std;
const int MAXN=1005;
string x,y,f[1005];
long long n,a[MAXN],b[MAXN],c[MAXN];
string Plus(string x,string y){
	string ans="";
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	memset(c,0,sizeof(c));	
	a[0]=x.size();
	b[0]=y.size();
	c[0]=max(a[0],b[0]);
	for(int i=1;i<=a[0];i++)
		a[i]=x[a[0]-i]-'0';
	for(int i=1;i<=b[0];i++)
		b[i]=y[b[0]-i]-'0';
	int jw=0;
	for(int i=1;i<=c[0];i++){
		c[i]=a[i]+b[i]+jw;
		jw=c[i]/10;
		c[i]%=10;
	}
	if(jw!=0)
		c[++c[0]]++;
	for(int i=c[0];i>=1;i--)
		ans=ans+char(c[i]+'0');
		
	return ans;
}
int main(){
	cin>>n;
	f[1]="1",f[2]="1";
	for(int i=3;i<=n;i++){
		f[i]=Plus(f[i-1],f[i-2]);
	}
	cout<<f[n];
	return 0;
}

考完了,提交了,0分了,哪错了?

陈曦在2021-02-06 21:18:01追加了内容

题目:

题目描述 Description

有一面长n米高3米的围墙,要给围墙贴上长3米宽1米的瓷砖,要求瓷砖必须完整,且墙面所有地方都被覆盖到,问一共有多少种贴法?

提示:如果围墙长1米,只有一种贴法:
image.png
如果围墙长2米,也只有一种贴法:
image.png
如果围墙长3米,有两种贴法:
image.png
image.png

输入描述 Input Description

输入一个正整数n。

输出描述 Output Description

输出贴瓷砖的总方法数。

样例输入 Sample Input

4

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

对于40%的数据,1<=n<=90;
对于100%的数据,1<=n<=1000。

陈曦在2021-02-08 15:05:14追加了内容

1


0
已采纳
黄依成
黄依成
中级天翼
中级天翼

我补课的时候也有一个阶段考,也有这道题

这题其实挺简单的(其实当时我没做出来qwq)

找规律,推出来:

f[i]=f[i-1]+f[i-3]

黄依成在2021-02-06 21:51:55追加了内容

COOL888888

0
0
0
汪恺恒
汪恺恒
中级启示者
中级启示者

我推的

n=5是只有4种

n=6是有6种

边界

f[0]="1"

f[1]="1"

f[2]="1"

递推式和2466一样

0
陈曦
陈曦
资深天翼
资深天翼

@黄依成 @汪恺恒 

我觉得你们回答的都很好,那你们如果想被采纳的话就看手速吧,先打出

COOL888888 的采纳。

如果3天内你们中每一人回,就采纳其它人中最快的那个

0
0
李瑞曦
李瑞曦
高级天翼
高级天翼

我们火箭班也有这题,我和你一样,0分

555555~

0
褚俊皓
褚俊皓
新手天翼
新手天翼

#include<iostream>
using namespace std;
int f[1010];
int main(){
    int n;
    cin>>n;
    f[1]=1;
    f[2]=1;
    f[3]=2;
    for(int i=4;i<=n;i++){
        f[i]=f[i-1]+f[i-2];
    }
    cout<<f[n];
    return 0;
}

我也是0分

0
0
陈振轩
陈振轩
高级光能
高级光能

重新推一遍。。。

f[i]=f[i-1]+f[i-3]

这是n*3啊...

0
我要回答