patterncppCritical
Printing 1 to 1000 without loop or conditionals
Viewed 0 times
conditionalsprinting1000withoutloop
Problem
Task: Print numbers from 1 to 1000 without using any loop or conditional statements. Don't just write the
How would you do that using C or C++?
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.