【发布时间】:2018-10-29 18:30:16
【问题描述】:
当我像这样执行嵌套 for 循环 4 次时,
int time[257] = {};
for(int i1 = 1; i1 < 65; i1++)
for(int i2 = 1; i2 < 65; i2++)
for (int i3 = 1; i3 < 65; i3++)
for (int i4 = 1; i4 < 65; i4++)
time[i1 + i2 + i3 + i4]++;
它能够正常输出。
for (int i = 1; i < 257; i++) {
cout << time[i] << endl;
}
但是,当我将嵌套 for 循环增加到 8 次时,没有任何输出。
for (int i1 = 1; i1 < 66; i1++)
for (int i2 = 1; i2 < 66; i2++)
for (int i3 = 1; i3 < 66; i3++)
for (int i4 = 1; i4 < 66; i4++)
for (int i5 = 1; i5 < 66; i5++)
for (int i6 = 1; i6 < 66; i6++)
for (int i7 = 1; i7 < 66; i7++)
for (int i8 = 1; i8 < 66; i8++)
time[i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8]++;
我已经使用 cout 测试了循环。似乎循环只是停留在第一级。 第二次在这里发帖,尝试查看可能的重复帖子。如果我违反了此处的任何规则和规定,我将删除此帖子。
【问题讨论】:
-
它仍在进行中...这里 66^8 = 360040606269696 次迭代
-
请告诉我们minimal reproducible example。特别是,向我们展示
time的声明(在最内层循环的末尾,您将修改time[520])。 -
@Kozyr 这就是我所怀疑的,当我在最后一个循环中计算出时间[i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8] 它只是不停地打印数字.有什么解决办法吗?
-
正如@Kozyr 所说,实际上是 65^8 的大量迭代,速度等于每次迭代 1Ghz,您将迭代 3.5 天( (65^8) / 1000000000 / 3600 / 24 )。
-
@Logman 即使再添加一个循环(总共 5 个)也不行吗?
标签: c++