[[분류:가져온 문서/오메가]]
FizzBuzz Test
3의 배수는 Fizz, 5의 배수는 Buzz, 3과 5의 공배수는 FizzBuzz로 출력하는 프로그램의 개발 속도를 테스트하는 것이다. 알고리즘이 필요없을 정도로 단순한 문제이지만, 컴퓨터공학 전공자 중 25%가 해결하지 못했다고 한다. [[http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding|#]] FizzBuzz 프로그램의 요구조건은 다음과 같다.
* 1에서 100까지 출력
* 3의 배수인 경우 숫자 대신 Fizz를 출력
* 5의 배수인 경우 숫자 대신 Buzz를 출력
* 3과 5의 공배수인 경우 숫자 대신 FizzBuzz를 출력
실제 통계에 따르면, 이 프로그램을 개발하는 데 현직 개발자는 3분, 신입은 10분, 구직자는 1시간이 걸렸다고 한다. 여러분이 프로그래밍을 배웠다면 한 번 프로젝트 생성에서 디버깅까지 얼마만큼의 시간이 걸리는지 측정해보라.
== 실제 코드 ==
=== [[C언어]] ===
{{{#!syntax C
#include <stdio.h>
int main(void)
{
for (int i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
if (i % 5 == 0)
{
printf("FizzBuzz\n");
}
else
{
printf("Fizz\n");
}
}
else if (i % 5 == 0)
{
printf("Buzz\n");
}
else
{
printf("%d", i);
}
}
return 0;
}
}}}
=== C# ===
{{{#!syntax C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace FizzBuzzTest
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
if (i % 5 == 0)
{
Console.WriteLine("FizzBuzz");
}
else
{
Console.WriteLine("Fizz");
}
}
else if (i % 5 == 0)
{
Console.WriteLine("Buzz");
}
else
{
Console.WriteLine(i);
}
}
}
}
}
}}}
=== ActionScript 3.0===
{{{#!syntax ActionScript
for(i=1; i<101; i++){
if(i%3 == 0 && i%5 ==0){
trace("FizzBuzz")
}
else if(i%3 == 0){
trace("Fizz")
}
else if(i%5 == 0){
trace("Buzz")
} else {
trace(i)
}
}
}}}
===Mathematica ===
Table[Which[Divisible[n, 15], "FizzBuzz", Divisible[n, 3], "Fizz", Divisible[n, 5], "Buzz", True, n], {n, 1, 100}]
=== GML ===
GML은 출력 기능이 없으므로 show_message로 대체한다.
{{{#!syntax GML
for(i=1; i<101; i+=1){
if i mod 3 = 0 {
if i mod 5 = 0{
show_message("FizzBuzz");
} else {
show_message("Fizz");
}
} else if i mod 5 = 0 {
show_message("Buzz");
} else {
show_message(i);
}
if i=100 {
game_end();
}
}
}}}
== 영상 ==
[youtube(1gx1kdMbpjI)]
[Include(틀:가져옴2,O=오메가, C=[[https://creativecommons.org/licenses/by-nc-sa/3.0/deed.ko|CC BY-NC-SA 3.0]])]