LoginSignup
2
5

More than 5 years have passed since last update.

春、新生活、FizzBuzzをざっくり書いてみた

Last updated at Posted at 2017-04-08

4月のこの時期、新生活や就職活動などでFizzBuzzを書く機会があるかも?
まぁこれに端を発してから、ちょっとしたテストに用いられる場合もあったりと、

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

早速ブラウザ上でコードを書いて実行できるpaiza.ioにて、
使ったことがある言語を選択して書いてみました※。
※3と5両方の倍数の判定は、結果15で割り切れる判定。

Go
package main

import "fmt"

func main(){

  for i := 1; i <= 100; i++ {
    if i%15 == 0 {
        fmt.Println("FizzBuzz")
    } else if i%3 == 0 {
        fmt.Println("Fizz")
    } else if i%5 == 0 {
        fmt.Println("Buzz")
    } else {
        fmt.Println(i)
    }
  }
}
Scala
object Main extends App{
    (1 to 100).map{
        case i if ((i % 15) == 0) =>"FizzBuzz"
        case i if ((i % 3) == 0) => "Fizz"
        case i if ((i % 5) == 0) => "Buzz"
        case i => i
    }.foreach(println(_))
}
PHP
<?php

 for ($i=1; $i <= 100; $i++) {
    if (($i % 15) == 0) {
        echo "FizzBuzz";
    } else if (($i % 3) == 0) {
        echo "Fizz";
    } else if (($i % 5) == 0) {
        echo "Buzz";
    } else {
        echo $i;
    }
        echo "\n";
 }
Java
public class Main {
    public static void main(String[] args) throws Exception {

      for (int i = 1; i <= 100; i++) {
        if ((i % 15) ==  0) {
          System.out.println("FizzBuzz");
        } else if ((i % 3) ==  0) {
          System.out.println("Fizz");
        } else if ((i % 5) == 0){
          System.out.println("Buzz");
        } else {
          System.out.println(i);
        }
      }

    }
}
Ruby
for i in 1..100

    if i%15 == 0
        puts "FizzBuzz!"
    elsif i%3 == 0
        puts "Fizz!"
    elsif i%5 == 0 
        puts "Buzz!"
    else
        puts i
    end

end

erlang,python,c,bash,vba,javascript...時間あるときにupしたい。
他にも色んな書き方あるから、考えて試してみると楽しい。

Go
package main

import "fmt"

func main(){

  var output string

  for i := 1; i <= 100; i++ {
    output = ""
    if i%3 == 0 {
        output += "Fizz"}
    if i%5 == 0 {
        output += "Buzz"}
    if output == "" {
        fmt.Println(i)
        continue
    }
    fmt.Println(output)
  }
}

自分は、go,rubyとそれ以外での書き方である種の傾向があるのがわかってみたり。
また時間を問われない場合は、関数等を定義して書くとよりスマート。
自分は今の会社入るときとか、プロジェクトに参画する前、
商談時にPCドンと置いて書いてみてという機会があったかな。

だいぶ前にブログで紹介されていた FizzBuzzを使ったプログラミングコンテストの話とか面白かったのも思い出した。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5