jsna @ 2021-03-07 17:12:11
#include<stdio.h>
int main()
{
int j,a[105]={0},b[105]={0},n,i,c[105]={0};
scanf("%d",&n);
a[0]=b[0]=c[0]=1;
if(n<=2)
{
printf("1");
return 0;
}
for(i=3;i<=n;i++)
{
for(j=0;j<100;j++)
{
a[j]=b[j];
b[j]=0;
}
for(j=0;j<100;j++)
{
b[j]=c[j];
}
for(j=0;j<100;j++)
{
c[j]=a[j]+b[j];
if(c[j]>=10)
{
c[j+1]=c[j+1]+c[j]/10;
c[j]=c[j]%10;
}
}
}
for(i=100;i>=0&&c[i]==0;i--)
;
for(j=i;j>=0;j--)
printf("%d",c[j]);
}
by jsna @ 2021-03-07 17:13:55
orz求助大佬
by 书雪 @ 2021-03-07 17:31:19
我比较弱,调了半天才调出来,你的c[j]=a[j]+b[j]把你进的位刷掉了
@jsna
by 书雪 @ 2021-03-07 17:35:13
你的输出部分直接把我这个蒟蒻看懵了qwq
by jsna @ 2021-03-07 20:03:41
@snow019 我还是不太懂诶,可以讲下怎么调的吗
by jsna @ 2021-03-07 20:04:07
@snow019 我才是蒟蒻,哭了哭了
by 书雪 @ 2021-03-07 20:16:29
比如说a数组存了5,b数组存了8,c数组会先进一个3,第二位进一个1,然后你去加第二位时0+0又把第二位变成了0
@jsna
by 书雪 @ 2021-03-07 20:19:59
这个很好改的qwq
by jsna @ 2021-03-08 11:10:34
@snow019 我懂了,谢了
by 我是超级垃圾 @ 2021-03-25 21:56:40
N=5K的时候答案有一千多位,数组不够大吧