FIZZ-BUZZ問題
どうしてプログラマに・・・プログラムが書けないのか?
上記サイトでプログラムの出来ないプログラマ(実際には学生らしいですが。情報科を卒業した人なので初心者ではないと思います)の話が出ています。
コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
だそうで、本当かな?学生ならまだしも自称上級プログラマが?と疑問に思って、実際にFIZZ-BUZZ問題に取り組んでみた。
きっと上級プログラマのその人はしばらくプログラムから離れて設計とかばかり携わっていたんじゃないのかな?と思う。
#include <stdio.h>
int main(void)
{
/*----------------------------------------------------------*/
/* 1から100までの数をプリントするプログラムを書け。 */
/* ただし3の倍数のときは数の代わりに「Fizz」と、 */
/* 5の倍数のときは「Buzz」とプリントし、 */
/* 3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 */
/*----------------------------------------------------------*/
int num=0;
for(num=1;num<101;num++){
if(num%15 ==0){
printf("fizzbuzz\n");
}
else if(num%3 == 0){
printf("fizz\n");
}
else if(num%5 == 0){
printf("buzz\n");
}
else{
printf("%d\n",num);
}
}
return 0;
}
実際には1回めのプログラミング時にnum/3とかやってしまったり、num%15をif分岐の
先頭に置かなかったりしているので、自称上級プログラマと同程度だとわかりました。
これは恥ずかしい・・・!