HiveBrain v1.2.0
Get Started
← Back to all entries
patterncppCritical

Printing 1 to 1000 without loop or conditionals

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
conditionalsprinting1000withoutloop

Problem

Task: Print numbers from 1 to 1000 without using any loop or conditional statements. Don't just write the printf() or cout statement 1000 times.

How would you do that using C or C++?

Solution

Compile time recursion! :P

#include 
template
struct NumberGeneration{
  static void out(std::ostream& os)
  {
    NumberGeneration::out(os);
    os 
struct NumberGeneration{
  static void out(std::ostream& os)
  {
    os ::out(std::cout);
}

Code Snippets

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

Context

Stack Overflow Q#4568645, score: 784

Revisions (0)

No revisions yet.