•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

FizzBuzz 문제 (r2) (복원)


비로그인 상태입니다. 편집한 내용을 저장하면 지금 접속한 IP가 기록됩니다.



[[분류:가져온 문서/오메가]]
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 ===
{{{#!syntax 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]])]