2013-02-26 30 views

回答

0

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

+0

这是一个强大英俊的图片,赎金。 – 2013-02-27 01:20:32

+0

@ G.Bach,谢谢。这是我为2011年万圣节做的一次表演,现在我几乎感到尴尬,以便制作更精确的肖像。 – 2013-02-27 02:56:53

1

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

是:

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

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

+0

哈哈,实际上很聪明的回答。我希望它只是讽刺吧 – 2013-02-26 23:30:58

+1

不需要输入全部,你可以用一个循环来生成代码。 – 2013-02-26 23:37:33

1

让我们尝试单回路

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

(假设你的意思十进制表示,C语言和数字开头非零数字)

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

0

伪codish ...

for val in (10000000..99999999) 
    display val 

什么让你觉得你需要8个循环?

+0

如果有一些限制,比如一个数字以4开头,那么4在整个循环中都不能重复。像4804123566不是一个有效的号码。并可能会有更多这样的条件。 – 2013-03-06 03:25:58

+0

并且您的逻辑也具有与我上面提到的相同的复杂性。 – 2013-03-06 03:26:36

+0

这是一个荒谬的评论。你的问题表明你想要“所有可能的数字”。但是,如果需要显示整数的处理,那么使用8循环方法会更好......除了可以使用递归或使用单个循环来实现堆栈之外。这比保留8个循环变量要好,你可以很容易地实现像你提到的特殊规则。 – paddy 2013-03-06 03:33:41

相关问题