Q9_KKK @ 2022-03-29 20:39:10
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char ans[5005][5005] = {"1", "1"};
int main()
{
int n;
scanf("%d", &n);
for (int i = 2; i <= n; i++)
{
int lens1 = strlen(ans[i - 1]);
int lens2 = strlen(ans[i - 2]);
char ans1[1005] = "";
char ans2[1005] = "";
for (int j = 0; j < lens1; j++)
{
ans1[lens1 - j - 1] = ans[i - 1][j];
}
for (int j = 0; j < lens2; j++)
{
ans2[lens2 - j - 1] = ans[i - 2][j];
}
int lens = lens1 > lens2 ? lens1 : lens2;
char ans_tmp[5005] = "";
for (int j = 0; j < lens; j++)
{
if (ans1[j])
ans_tmp[j] += ans1[j] - '0';
if (ans2[j])
ans_tmp[j] += ans2[j] - '0';
ans_tmp[j] += '0';
if (ans_tmp[j] > '9')
{
ans_tmp[j] -= 10;
ans_tmp[j + 1] += 1;
}
}
if (ans_tmp[lens])
{
ans_tmp[lens++] += '0';
}
for (int j = 0; j < lens; j++)
{
ans[i][lens - j - 1] = ans_tmp[j];
}
}
printf("%s\n", ans[n]);
return 0;
}
这么写一直报ce,但本地没问题
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char ans[5005][5005];
int main()
{
int n;
scanf("%d", &n);
ans[0][0] = '1';
ans[1][0] = '1';
for (int i = 2; i <= n; i++)
{
int lens1 = strlen(ans[i - 1]);
int lens2 = strlen(ans[i - 2]);
char ans1[2005] = "";
char ans2[2005] = "";
for (int j = 0; j < lens1; j++)
{
ans1[lens1 - j - 1] = ans[i - 1][j];
}
for (int j = 0; j < lens2; j++)
{
ans2[lens2 - j - 1] = ans[i - 2][j];
}
int lens = lens1 > lens2 ? lens1 : lens2;
char ans_tmp[3005] = "";
for (int j = 0; j < lens; j++)
{
if (ans1[j])
ans_tmp[j] += ans1[j] - '0';
if (ans2[j])
ans_tmp[j] += ans2[j] - '0';
ans_tmp[j] += '0';
if (ans_tmp[j] > '9')
{
ans_tmp[j] -= 10;
ans_tmp[j + 1] += 1;
}
}
if (ans_tmp[lens])
{
ans_tmp[lens++] += '0';
}
for (int j = 0; j < lens; j++)
{
ans[i][lens - j - 1] = ans_tmp[j];
}
}
printf("%s\n", ans[n]);
return 0;
}
by APJifengc @ 2022-03-29 20:50:17
在数组比较大的时候,不要使用大括号初始化数组。
你自己看看第一种方法本地编译出来的文件大小,应该有大约 23MB。
这是因为,如果你用大括号初始化,编译器会将整个数组全部初始化。然后你的可执行文件就已经存了5000*5000这么大的数组了,就炸了
前几天模拟赛我们机房就有人因为这个CE了
by fengwu @ 2022-03-29 20:51:29
数组太大了导致编译展开,文件太大死掉了
你可以看看本地编译时间是不是很长
最好不要在定义的时候初始化,慢死
by fengwu @ 2022-03-29 20:51:53
@APJifengc 哈哈哈
by Q9_KKK @ 2022-03-29 21:15:57
感谢感谢,悟了悟了!