打印所有可能的 8 位数字的算法是否需要 8 个 for 循环?即 10 次幂 n 时间复杂度。有没有办法可以减少循环次数?
问问题
258 次
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 回答