-2

打印所有可能的 8 位数字的算法是否需要 8 个 for 循环?即 10 次幂 n 时间复杂度。有没有办法可以减少循环次数?

4

4 回答 4

1

有没有办法可以减少循环次数?

是的:

printf("00000000\n");
printf("00000001\n");
printf("00000002\n");
printf("00000003\n");
....

没有循环。只是打字很多。

于 2013-02-26T23:24:46.613 回答
1

让我们试试单循环

int i;
for (i = 10000000; i < 100000000; i++)
{
    printf("%d\n", i);
}

(假设您的意思是十进制表示、c 语言和以非零数字开头的数字)

如果你想打印所有的数字,你不会得到任何加速算法。

于 2013-02-26T23:28:48.933 回答
0

不,没有办法降低复杂性。要生成 10^n 个输出,您需要迭代 10^n 次。

于 2013-02-26T23:24:43.990 回答
0

伪科...

for val in (10000000..99999999)
    display val

是什么让你认为你需要 8 个循环?

于 2013-02-26T23:30:09.167 回答