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

你怎么用C或C++来做?

推荐答案

编译时递归!:P

#include <iostream>
template<int N>
struct NumberGeneration{
  static void out(std::ostream& os)
  {
    NumberGeneration<N-1>::out(os);
    os << N << std::endl;
  }
};
template<>
struct NumberGeneration<1>{
  static void out(std::ostream& os)
  {
    os << 1 << std::endl;
  }
};
int main(){
   NumberGeneration<1000>::out(std::cout);
}

C++相关问答推荐

ARM上的Modulo Sim Aarch 64(NEON)

如何将一个enum类型类型转换为另一个类型?

从内联程序集调用Rust函数和调用约定

Ebpf内核代码:permission denied:invalid access to map value

ESP32在vTaskDelay上崩溃

C由四个8位整数组成无符号32位整数

Clang:如何强制运行时错误的崩溃/异常由于-fsanitize=undefined

Linux不想运行编译后的文件

如何在C语言中正确打印图形

如何使用C++在控制台中以彩色打印被阻止的客户端

我的C函数起作用了,但我不确定为什么

<;unistd.h>;和<;sys/unistd.h>;之间有什么区别?

指向不同类型的指针是否与公共初始序列规则匹配?

将字符串数组传递给C中的函数:`str[dim1][str_size]`vs`*str[dim1]`

C语言中奇怪的输出打印数组

我正在try 将QSORT算法实现为C++中的泛型函数

为什么我无法访问C语言中的文件

从整型转换为浮点型可能会改变其值.

如何使用calloc和snprintf

C语言中的指针和多维数组