LoginSignup
1
0

More than 3 years have passed since last update.

FizzBuzzに取り組むカワウソ

Last updated at Posted at 2019-12-06

FizzBuzzとは

FizzBuzzって知ってますか?

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

(どうしてプログラマに・・・プログラムが書けないのか? Jeff Atwood / 青木靖 訳)より引用
[http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm]

カワウソもプログラミングテストでこのFizzBuzz(具体的にはもうちょい発展したやつ)のコードを書く機会がありました。

今回は復習として改めてFizzBuzzをやっていこうと思います。
宮大はC言語に親しみがあるのでCでやります。キュー

フローチャート

フローチャート.png

解いてみる

fizzbuzz.c
#include <stdio.h>
int main(void) {
    int i;
    for (i = 1; i <= 100; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            printf("FizzBuzz\n");
        } else if (i % 3 == 0) {
            printf("Fizz\n");
        } else if (i % 5 == 0) {
            printf("Buzz\n");
        } else {
            printf("%d\n", i);
        }
    }
    return 0;
}

コンパイルして実行する

gcc -o fizzbuzz fizzbuzz.c
./fizzbuzz

できた!

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
(略)
97
98
Fizz
Buzz

関数を作ってみるよ

fizzbuzz_func.c
#include <stdio.h>

//自作関数
void FizzBuzz(int n){
  if (n % 3 == 0 && n % 5 == 0) {
    printf("FizzBuzz\n");
  } else if (n % 3 == 0) {
    printf("Fizz\n");
  } else if (n % 5 == 0) {
    printf("Buzz\n");
  } else {
    printf("%d\n", n);
  }
}

int main(void) {
  int i;
    for (i = 1; i <= 100; i++) {
      //関数FizzBuzを呼び出し
      FizzBuzz(i);
    }
  return 0;
}

コンパイルして実行する

gcc -o fizzbuzz_func fizzbuzz_func.c
./fizzbuzz_func
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
(略)
97
98
Fizz
Buzz

まとめ

C言語でFizzBuzzを解いてみました。
解き方は他にもあると思いますが、今回やってみた方法が理解しやすいと思いました。
もっとスマートな方法を知っている方は教えてください。

1
0
3

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
1
0