OJ上的一个题,输入8时有输出,而输入16时无输出,debug时报错,提交到OJ后显示“内存超限” - 爱问答

(爱问答)

OJ上的一个题,输入8时有输出,而输入16时无输出,debug时报错,提交到OJ后显示“内存超限”

OJ上的一个题,输入8时有输出,而输入16时无输出,debug时报错,提交到OJ后显示“内存超限”

#include <cstdio>

 

int a[10000][10000] = {0}, n, i, j, t, plus = 1;

int main() {

a[0][0] = 1;

scanf("%d",&n);

t = n;

while(t) {

for(i = 0; i < plus; ++i)

for(j = 0; j < plus; ++j)

a[i][j+plus]=a[i][j]+plus;

for(i = 0; i < plus; ++i)

for(j = 0; j < plus; ++j) {

a[i+plus][j]=a[i][j+plus];

a[i+plus][j+plus]=a[i][j];

}

plus *= 2;

--t;

}

for(i = 0; i < n; ++i) {

//printf("%d:",a[i-1][0]);

for(j = 0; j < n; ++j) {

if(j == 0)printf("%d:",a[i][j]);

elseprintf("%2d",a[i][j]);

}

printf(" ");

}

return 0;

}


我只帮你分析错,不帮你解决

当输入为16时,plus最大值为65536

而循环中,你a的一个下标[j+plus]的值可达到131072

你只定义了a[10000][10000]

下标早溢出了(你要改进你的算法)

相关标签:内存

下一篇:OJ上的一个题目,自己写的,输入8时有输出,但输入16时没有输出,提交显示内存超限

上一篇:如何提升自己的语言表达能力和语言组织能力?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?