I have tried to print 1to 100 without using loops but I have not achieved it.how to print the numbers from 1 to 100 and back to 1 in c++ witout using loops and conditions.
Asked
Active
Viewed 79 times
-5
-
2http://stackoverflow.com/questions/4568645/printing-1-to-1000-without-loop-or-conditionals – Maroun Apr 07 '14 at 09:09
-
2Are you working with a compiler that doesn't support loops or conditions? – Shoe Apr 07 '14 at 09:18
-
2Perhaps this would be better on http://codegolf.stackexchange.com/ ? – Tony Delroy Apr 07 '14 at 09:20
-
4codegolf.stackexchange.com, as per Tony D's comment. – DevSolar Apr 07 '14 at 09:34
-
no this is an interview question – venkatesh Apr 07 '14 at 09:36
-
What is the relevance between the title and body of the question? – Tahlil Apr 07 '14 at 09:44
-
it may be possible with static member – venkatesh Apr 07 '14 at 10:49
3 Answers
2
This worked:
#include <iostream>
template <int N>
void print()
{
std::cout << N << std::endl;
print<N+1>();
}
template <>
void print<101>()
{
}
int main()
{
print<1>();
}
With "clang++ -std=c++1y -o test print.cpp; ./test"
"And back to 1" part can be done similarly, since it's an interview question I've already documented enough.

berkus
- 1,552
- 12
- 16
-
-
Left as an excercise to the reader, idea is the same but i'm not doing someone's homework. – berkus Apr 07 '14 at 11:45
2
The power of RAII
class Printer
{
Printer()
{
++i;
std::cout << i << std::endl;
}
~Printer()
{
std::cout << i << std::endl;
--i;
}
static int i = 0;
};
int main()
{
std::vector<Printer> p(100);
return 0;
}

SebastianK
- 3,582
- 3
- 30
- 48
-
-
He also said "witout using loops and conditions", I see a condition up there - **if** – berkus Apr 07 '14 at 09:37
-
-
-
1
Are there some restrictions? What about the static member?
This would do it:
std::cout<<1<<std::endl;
std::cout<<2<<std::endl;
std::cout<<3<<std::endl;
std::cout<<4<<std::endl;
std::cout<<5<<std::endl;
std::cout<<6<<std::endl;
std::cout<<7<<std::endl;
std::cout<<8<<std::endl;
std::cout<<9<<std::endl;
std::cout<<10<<std::endl;
std::cout<<11<<std::endl;
std::cout<<12<<std::endl;
std::cout<<13<<std::endl;
std::cout<<14<<std::endl;
std::cout<<15<<std::endl;
std::cout<<16<<std::endl;
std::cout<<17<<std::endl;
std::cout<<18<<std::endl;
std::cout<<19<<std::endl;
std::cout<<20<<std::endl;
std::cout<<21<<std::endl;
std::cout<<22<<std::endl;
std::cout<<23<<std::endl;
std::cout<<24<<std::endl;
std::cout<<25<<std::endl;
std::cout<<26<<std::endl;
std::cout<<27<<std::endl;
std::cout<<28<<std::endl;
std::cout<<29<<std::endl;
std::cout<<30<<std::endl;
std::cout<<31<<std::endl;
std::cout<<32<<std::endl;
std::cout<<33<<std::endl;
std::cout<<34<<std::endl;
std::cout<<35<<std::endl;
std::cout<<36<<std::endl;
std::cout<<37<<std::endl;
std::cout<<38<<std::endl;
std::cout<<39<<std::endl;
std::cout<<40<<std::endl;
std::cout<<41<<std::endl;
std::cout<<42<<std::endl;
std::cout<<43<<std::endl;
std::cout<<44<<std::endl;
std::cout<<45<<std::endl;
std::cout<<46<<std::endl;
std::cout<<47<<std::endl;
std::cout<<48<<std::endl;
std::cout<<49<<std::endl;
std::cout<<50<<std::endl;
std::cout<<51<<std::endl;
std::cout<<52<<std::endl;
std::cout<<53<<std::endl;
std::cout<<54<<std::endl;
std::cout<<55<<std::endl;
std::cout<<56<<std::endl;
std::cout<<57<<std::endl;
std::cout<<58<<std::endl;
std::cout<<59<<std::endl;
std::cout<<60<<std::endl;
std::cout<<61<<std::endl;
std::cout<<62<<std::endl;
std::cout<<63<<std::endl;
std::cout<<64<<std::endl;
std::cout<<65<<std::endl;
std::cout<<66<<std::endl;
std::cout<<67<<std::endl;
std::cout<<68<<std::endl;
std::cout<<69<<std::endl;
std::cout<<70<<std::endl;
std::cout<<71<<std::endl;
std::cout<<72<<std::endl;
std::cout<<73<<std::endl;
std::cout<<74<<std::endl;
std::cout<<75<<std::endl;
std::cout<<76<<std::endl;
std::cout<<77<<std::endl;
std::cout<<78<<std::endl;
std::cout<<79<<std::endl;
std::cout<<80<<std::endl;
std::cout<<81<<std::endl;
std::cout<<82<<std::endl;
std::cout<<83<<std::endl;
std::cout<<84<<std::endl;
std::cout<<85<<std::endl;
std::cout<<86<<std::endl;
std::cout<<87<<std::endl;
std::cout<<88<<std::endl;
std::cout<<89<<std::endl;
std::cout<<90<<std::endl;
std::cout<<91<<std::endl;
std::cout<<92<<std::endl;
std::cout<<93<<std::endl;
std::cout<<94<<std::endl;
std::cout<<95<<std::endl;
std::cout<<96<<std::endl;
std::cout<<97<<std::endl;
std::cout<<98<<std::endl;
std::cout<<99<<std::endl;
std::cout<<100<<std::endl;
std::cout<<99<<std::endl;
std::cout<<98<<std::endl;
std::cout<<97<<std::endl;
std::cout<<96<<std::endl;
std::cout<<95<<std::endl;
std::cout<<94<<std::endl;
std::cout<<93<<std::endl;
std::cout<<92<<std::endl;
std::cout<<91<<std::endl;
std::cout<<90<<std::endl;
std::cout<<89<<std::endl;
std::cout<<88<<std::endl;
std::cout<<87<<std::endl;
std::cout<<86<<std::endl;
std::cout<<85<<std::endl;
std::cout<<84<<std::endl;
std::cout<<83<<std::endl;
std::cout<<82<<std::endl;
std::cout<<81<<std::endl;
std::cout<<80<<std::endl;
std::cout<<79<<std::endl;
std::cout<<78<<std::endl;
std::cout<<77<<std::endl;
std::cout<<76<<std::endl;
std::cout<<75<<std::endl;
std::cout<<74<<std::endl;
std::cout<<73<<std::endl;
std::cout<<72<<std::endl;
std::cout<<71<<std::endl;
std::cout<<70<<std::endl;
std::cout<<69<<std::endl;
std::cout<<68<<std::endl;
std::cout<<67<<std::endl;
std::cout<<66<<std::endl;
std::cout<<65<<std::endl;
std::cout<<64<<std::endl;
std::cout<<63<<std::endl;
std::cout<<62<<std::endl;
std::cout<<61<<std::endl;
std::cout<<60<<std::endl;
std::cout<<59<<std::endl;
std::cout<<58<<std::endl;
std::cout<<57<<std::endl;
std::cout<<56<<std::endl;
std::cout<<55<<std::endl;
std::cout<<54<<std::endl;
std::cout<<53<<std::endl;
std::cout<<52<<std::endl;
std::cout<<51<<std::endl;
std::cout<<50<<std::endl;
std::cout<<49<<std::endl;
std::cout<<48<<std::endl;
std::cout<<47<<std::endl;
std::cout<<46<<std::endl;
std::cout<<45<<std::endl;
std::cout<<44<<std::endl;
std::cout<<43<<std::endl;
std::cout<<42<<std::endl;
std::cout<<41<<std::endl;
std::cout<<40<<std::endl;
std::cout<<39<<std::endl;
std::cout<<38<<std::endl;
std::cout<<37<<std::endl;
std::cout<<36<<std::endl;
std::cout<<35<<std::endl;
std::cout<<34<<std::endl;
std::cout<<33<<std::endl;
std::cout<<32<<std::endl;
std::cout<<31<<std::endl;
std::cout<<30<<std::endl;
std::cout<<29<<std::endl;
std::cout<<28<<std::endl;
std::cout<<27<<std::endl;
std::cout<<26<<std::endl;
std::cout<<25<<std::endl;
std::cout<<24<<std::endl;
std::cout<<23<<std::endl;
std::cout<<22<<std::endl;
std::cout<<21<<std::endl;
std::cout<<20<<std::endl;
std::cout<<19<<std::endl;
std::cout<<18<<std::endl;
std::cout<<17<<std::endl;
std::cout<<16<<std::endl;
std::cout<<15<<std::endl;
std::cout<<14<<std::endl;
std::cout<<13<<std::endl;
std::cout<<12<<std::endl;
std::cout<<11<<std::endl;
std::cout<<10<<std::endl;
std::cout<<9<<std::endl;
std::cout<<8<<std::endl;
std::cout<<7<<std::endl;
std::cout<<6<<std::endl;
std::cout<<5<<std::endl;
std::cout<<4<<std::endl;
std::cout<<3<<std::endl;
std::cout<<2<<std::endl;
std::cout<<1<<std::endl;

tgmath
- 12,813
- 2
- 16
- 24
-
-
1@FlorisVelleman You're right. :D Now it print 1 to 100 and back.Not sure wether 100 should be printed once or twice. – tgmath Apr 07 '14 at 11:35
-
#include
using namespace std; class Box { static int a; public: Box(){ cout<<++a< – venkatesh Dec 16 '14 at 13:29