2 juntanhau juntanhau 于 2016.09.21 13:27 提问

不使用if、goto、switch、while、for、do、?:运算

不使用if、goto、switch、while、for、do、?:运算,用C语言输出hello world 2000次。代码不能超过100行

9个回答

caozhy
caozhy   Ds   Rxr 2016.09.21 13:45
已采纳
 #include <stdio.h>

void foo2(int n);

void foo1(int n)
{
printf("hello world %d\n", n);
void (*pf[2])(int);
pf[0] = &foo1;
pf[1] = &foo2;
pf[n / 2000](n + 1);
return;
}

void foo2(int n)
{
return;
}

int main()
{
foo1(1);
return 0;
}
caozhy
caozhy   Ds   Rxr 2016.09.21 14:03

或者

 #include <stdio.h>

void foo1() { printf("hello world\n"); }
void foo2() { foo1(); foo1(); }
void foo4() { foo2(); foo2(); }
void foo8() { foo4(); foo4(); }
void foo16() { foo8(); foo8(); }
void foo32() { foo16(); foo16(); }
void foo64() { foo32(); foo32(); }
void foo128() { foo64(); foo64(); }
void foo256() { foo128(); foo128(); }
void foo512() { foo256(); foo256(); }
void foo1024() { foo512(); foo512(); }
int main()
{
/*1024+512+256+128+64+16=2000*/
foo1024();
foo512();
foo256();
foo128();
foo64();
foo16();
return;
}
qq_35225958
qq_35225958 厉害了
大约一年之前 回复
caozhy
caozhy 回复Marksinoberg: 另一个回答是递归
大约一年之前 回复
caozhy
caozhy 回复Marksinoberg: 这不是递归
大约一年之前 回复
Marksinoberg
Marksinoberg 好强的递归实现。学到了。
大约一年之前 回复
mr_oydy
mr_oydy   2016.09.28 02:43

#define A printf("hello,world\n");
#define B A A A A A A A A A A
#define C B B B B B B B B B B
#define D C C C C C C C C C C
int main(){
D
D
return 0;
}

Nanaya_lei
Nanaya_lei
大约一年之前 回复
qq_35225958
qq_35225958 机智
大约一年之前 回复
u014559880
u014559880 好机智,我笑出了声。。。。
大约一年之前 回复
u014292052
u014292052   2016.10.08 09:54

图片说明

caozhy
caozhy
大约一年之前 回复
u012702850
u012702850   2016.09.21 13:47

内嵌汇编(我只是来搞笑的...)

niaonao
niaonao   Rxr 2016.09.21 14:15

递归能做吧

为什么想要这样做呢
有什么想法吗?

u014292052
u014292052   2016.10.08 09:54

可以不用递归,而利用堆栈溢出攻击原理

u014292052
u014292052   2016.10.08 09:56

图片说明

dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.10.19 20:03

曹老师的算法太牛逼了,有递归和非递归两种实现方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!