gpt4 book ai didi

c++ - 打印 1 到 1000 不带循环或条件

转载 作者:bug小助手 更新时间:2023-10-28 01:31:42 27 4
gpt4 key购买 nike

任务:打印从 1 到 1000 的数字,而不使用任何循环或条件语句。不要只写 1000 次 printf()cout 语句。

你会如何使用 C 或 C++ 来做到这一点?

最佳答案

这个实际上编译为没有任何条件的程序集:

#include <stdio.h>
#include <stdlib.h>

void main(int j) {
printf("%d\n", j);
(&main + (&exit - &main)*(j/1000))(j+1);
}


编辑:添加了“&”,因此它会考虑地址,从而避免指针错误。

标准 C 中的上述版本,因为它不依赖于函数指针的算术运算:

#include <stdio.h>
#include <stdlib.h>

void f(int j)
{
static void (*const ft[2])(int) = { f, exit };

printf("%d\n", j);
ft[j/1000](j + 1);
}

int main(int argc, char *argv[])
{
f(1);
}

关于c++ - 打印 1 到 1000 不带循环或条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4568645/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com