1
1194
这个程序实际上编译成了不带任何条件的程序集:
编辑:添加了“&”因此它将考虑该地址从而避免指针错误。 标准C中的上述版本,因为它不依赖于函数指针上的算术:
|
2
784
编译时递归!:P
|
3
544
我很惊讶似乎没有人发布这个——我认为这是最明显的方式。
|
4
298
看起来不需要使用循环
|
5
270
以下是我知道的三种解决方案。第二种可能会引起争议。
[ 编辑: (1) 和(4)只能用于编译时常数,(2)和(3)也可以用于运行时表达式-- 结束编辑。 ] |
6
263
我不会把printf语句写1000次!
不客气;) |
7
212
它不打印 全部的 数字,但它确实“打印从1到1000的数字。”获胜的模糊问题!:) |
8
172
触发致命错误!这是文件,countup.c:
编译,然后在shell提示符下执行:
这确实打印了从1到1000的数字,没有任何循环或条件! |
9
166
使用系统命令:
|
10
100
未经测试,但应为香草标准C:
|
11
96
与这里的其他人相比有点无聊,但可能是他们想要的。
|
12
71
该任务从未指定程序必须在1000之后终止。
( 如果你跑步,可以缩短为这个/a.没有额外参数的out )
|
13
71
简单如馅饼!:P
|
14
65
|
15
42
我们可以启动1000个线程,每个线程打印一个数字。安装
OpenMPI
,使用编译
当然,这些数字不一定会按顺序打印,但这个问题并不需要按顺序打印。 |
16
40
使用普通C:
当然,您可以对其他基数(2:print2 print4 print8…)实现相同的想法,但这里的数字1000建议基数为10。您还可以稍微减少添加中间函数的行数:
|
17
34
只需将std::copy()与一个特殊的迭代器一起使用即可。
|
18
33
函数指针(ab)使用。没有增加输出的预处理器魔法。ANSI C。
|
19
32
|
20
30
丑陋的C答案(每10次方仅展开一个堆栈帧):
|
21
29
堆栈溢出:
这是针对8MB堆栈的。每个函数调用似乎需要大约32个字节(因此是32*1000)。但当我运行它时,我只得到了804(因此是196*32;也许C运行时在堆栈中还有其他部分,你也必须扣除)。 |
22
25
有趣的功能指针(不需要任何新的尖牙TMP):
顺便说一句:我认为禁止条件语句也扩展到了逻辑运算符和关系运算符。如果允许逻辑否定,递归调用可以简化为:
|
23
24
我觉得这个答案会非常简单易懂。
|
24
23
我错过了所有的乐趣,所有好的C++答案都已经发布了! 这是我能想到的最奇怪的事情,我不敢打赌这是合法的C99
另一个,带有 小的 作弊:
最后一个想法,同样的欺骗:
|
25
22
简单如馅饼:
执行方法:
规范中没有说明必须生成序列 在…内 代码:) |
26
18
|
27
15
|
28
15
更多预处理器滥用:
我觉得自己很脏;我想我现在要去洗澡了。 |
29
15
如果POSIX解决方案被接受:
|
30
13
由于对bug没有限制。。
甚至更好(?),
|
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |