14 ms·
Easier Than Fizz Buzz – Why Can't Programmers Print 100 to 1?
- Jemaclus 12y agoHmm. This post seems to imply that whining correlates with poor coding abilities. I'm not sure I buy that. And as a tongue-in-cheek observation, what does taking the time to write about whining about people not being able to code mean for this guy's coding abilities? :)
- Zikes 12y agoecho 100-i;
- geebee 12y agoCouple things. First, yeah, this should be easy. Second, yeah, you should do almost anything other than whine. That certainly includes improving your skills. Third, there's plenty to object to in the hiring process and work environment for many software developers, and I certainly don't think all of it should be dismissed as "whining".
- decker 12y agoThat's cool, but then again, this guy likely just failed fizz-buzz for producing a graph showing correlation.
- tempestn 12y agoHa, that was my first thought too! Would be a lot more logical to put whining on one axis and capability on the other.
- meric 12y agoEither ways the sad reality of where the IT industry stands today is that you don't even need Fizz Buzz to differentiate a bad non-programmer from a good one - Just asking them to print 100 to 1 is usually good enough. The point of FizzBuzz is to differentiate whether a person is a non-programmer, or a programmer. It is necessary but not sufficient to determine whether a programmer is good. It's important to note non-programmers are not necessarily bad persons, they just aren't programmers.
- niix 12y agofor (i = 100; i >= 0; i-=1) { console.log(i) }
- GregBuchholz 12y agoAny thoughts on golfing it smaller than: for(int i=0;i<100;printf("%d\n",100-i++)); ...I'm assuming we're talking C, with the appropriate includes, and main, etc..
- deleted 12y ago[deleted]
- zem 12y agoor antigolfing it :) for (int i=0;i;); printf("100\n"); printf("99\n"); /*...*/ // or if you want to be a smartass printf("100 to 1\n");
- tempestn 12y agoI really hope someone tried that in the interview.
- bko 12y agofor(int i=0;i<99;printf("%d\n",101-++i));
- im3w1l 12y agoDoesn't print 1.
- frobozz 12y agoYou can easily save one more character. The problem doesn't say anything about newlines.
- im3w1l 12y agofor(int i=101;--i;)printf("%d\n",i); Assuming int main(int a) we can do a<100&&main(a+1);printf("%d\n",a); EDIT: missed constraint that it needs to start with for(int i=0 from article.
- ConceptJunkie 12y ago
- deleted 12y ago[deleted]
- cjbar 12y agoTook me longer than 2 minutes, I don't use this trick very often ._. for(int i = 0, t = 100; i < 100; i++) { Console.WriteLine(t--); }
- wcdolphin 12y agoIs there something wrong with the following? I feel like I am somehow missing the complexity of the problem. Framing it as "Count down from 100 to 1" makes the implementation read like the problem. for(int i=0; i< 100; i++){ System.out.println(100-i); }
- TheLoneWolfling 12y agoThere isn't any complexity. It's "just" that there are many people who don't exactly problem-solve well. I've noticed this before. I've taken classes where people produce decent, although not great, assignments, and then turn around and get <20% on a test.
- deleted 12y ago[deleted]
- hn_user2 12y agoI find it interesting that they moved onto the next question after a candidate gave up on the problem after 10 minutes. Am I coldhearted for thinkng this is were you end the interview and go back to your desk to get some work done?
- blub 12y agoThat's too harsh. We have a rule for instance that we continue the interview for a minimum time, even if the candidate is doing badly. They might be very nervous, having a bad day, etc.
- colanderman 12y agoSuggest graphing whining on one axis and coding on the other. Graphing them both on the same axis vs. candidate # is unhelpful. (And you should never connect data points which have no meaningful interpolation with lines. It's misleading.)
- nallerooth 12y agoI understand that even simple problems may seem difficult when you're under stress (being interviewed). I know that I perform a lot worse under those conditions than under "normal stress", as I have to prove myself to someone else and not just to myself. But with that said, this shouldn't be a problem for anyone who have been programming for a year or more.
- rrich 12y ago// Duff's Buzz #include<stdio.h> int main(){ register count = 0x64; register a = 0x0; { register n = (count + 0x9) / 0xa; switch (a=count % 0xa) { case 0: do { printf("%d\n", n*0xa+a); case 9: printf("%d\n", n*0xa+a-0x1); case 8: printf("%d\n", n*0xa+a-0x2); case 7: printf("%d\n", n*0xa+a-0x3); case 6: printf("%d\n", n*0xa+a-0x4); case 5: printf("%d\n", n*0xa+a-0x5); case 4: printf("%d\n", n*0xa+a-0x6); case 3: printf("%d\n", n*0xa+a-0x7); case 2: printf("%d\n", n*0xa+a-0x8); case 1: printf("%d\n", n*0xa+a-0x9); } while (--n > 0x0); } } return 0; }
- golergka 12y agoLove it. Immediately shows a potential employer how readable and maintainable your code will be.
- dysan819 12y agoin python for i in range(100): print(100 - i) (there is no 'for (int i=0;' in python, but this analogous.)
- heyalexej 12y agoprint [i for i in reversed(range(101))]
- robkix 12y agoWhy reversed range? Range is fully capable of descending [1] You also missed the point of the exercise: start at 0 in your index, but count backward from 100 in output. So the map is 0->100, 1 -> 99, ..., 99 -> 1, 100 -> 0 [1] https://docs.python.org/2/library/functions.html#range https://docs.python.org/2/library/functions.html#range
- heyalexej 12y agoSoooo, I won't get the job?
- 0hn0 12y agoPHP: for($i=0;$i<100;$i++) echo 100-$i."\n";
- 0hn0 12y agoor for($i=0;;) echo 100-$i>0?100-$i++."\n":exit;
- deleted 12y ago[deleted]
- jbergens 12y agoI still view this as a way to separate those who can hardly program at all from those who can. It is probably not a good way to measure if anyone is a great developer. The first part should probably be possible to answer by just talking to the person and to a few people he has worked with. Besides my main arguments agains this there is another problem with this kind of questions: when the questions become known and people start writing answers all over the net (just look at a lot of comments on this page) someone could learn the answer without being or getting good at programming.
- deleted 12y ago[deleted]
- jmnicolas 12y agoIt took more time for Visual Studio to launch a new project than for me to solve the problem. However I whine a lot ... but it could be that the situation is really bad at my job. Am I hired ? :-)
- Keloran 12y agofor (int i = 0; i < 100; i++) { int j = 100; std::cout << (j - i) << std::endl; }