1. ホーム
  2. c++

[解決済み】ループや条件文を使わずに1~1000を印刷する

2022-03-26 13:10:22

質問

タスク : ループや条件文を使わずに、1から1000までの数字を表示しなさい。ただ単に printf() または cout ステートメントを1000回実行します。

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);
}