C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でFizzBuzz問題を解くプログラムの作成方法

FizzBuzzは、プログラミング学習の定番として知られる古典的な問題です。ルールは以下の通りです。

  • 3の倍数の場合は、数値の代わりに「Fizz」と表示する
  • 5の倍数の場合は、数値の代わりに「Buzz」と表示する
  • 3と5の両方の倍数(つまり15の倍数)の場合は、数値の代わりに「FizzBuzz」と表示する

それ以外の数値は、そのまま表示します。このルールに従って、1から100までの数値を順番に出力していくのがFizzBuzz問題です。

この問題を解くポイントは、条件分岐の判定順序です。「3と5の両方の倍数」のチェックを最初に行わないと、3の倍数の条件が先に一致してしまい、「FizzBuzz」ではなく「Fizz」が表示されてしまいます。

C#での実装例

以下のコードは、forループとif-else文を使ってFizzBuzzを実装したC#プログラムです。

using System;

class Demo {

    static void Main(String[] args) {
        for(int i = 1; i <= 100; i++) {

            if((i % 3 == 0) && (i % 5 == 0))
                Console.WriteLine("FizzBuzz\n");
            else if(i % 3 == 0)
                Console.WriteLine("Fizz\n");
            else if(i % 5 == 0)
                Console.WriteLine("Buzz\n");
            else
                Console.WriteLine(i);
        }
    }
}

コードの解説

1. ループ処理

forループで変数iを1から100まで1ずつ増やしながら処理を繰り返します。

2. 条件分岐の順序

まず(i % 3 == 0) && (i % 5 == 0)で、iが3と5の両方で割り切れるか(15の倍数か)を判定します。剰余演算子%は、割り算の余りを求める演算子で、余りが0なら割り切れることを意味します。

3. 出力結果

このプログラムを実行すると、以下のような出力が得られます。

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
...

15の倍数である15、30、45…では「FizzBuzz」が、それ以外の3の倍数では「Fizz」が、5の倍数では「Buzz」が正しく表示されていることが確認できます。

まとめ

FizzBuzzは一見シンプルな問題ですが、条件分岐の順序や論理演算子の使い方など、プログラミングの基礎が詰まった良い練習題材です。ぜひ自分でもコードを書いて、動作を確かめてみてください。

  1. C言語で配列を逆順に反転させるプログラムの書き方

    配列とは、共通の名前のもとで管理される、関連性のあるデータ項目の集まりのことです。同じ型の複数の値を効率的に扱いたい場合に活用されます。配列の宣言構文C言語で配列を宣言する際の基本的な構文は以下のとおりです。データ型 配列名 [サイズ];配列の初期化配列は、宣言と同時に初期化することもできます。int a[5] = { 10,20,30,40,50};この例では、整数型の配列 a の5つの要素に、それぞれ10から50までの値が順番に格納されています。C言語で配列を逆順にする方法配列の要素を逆順に並べ替えるには、要素の入れ替え(スワップ)やコピーのテクニックを利用します。たとえば、4つの要素を持

  2. C++で解くピーターセングラフのウォーク問題:文字列を実現する辞書順最小の経路を求める

    問題の概要下図のようなグラフを考えます。これは有名なピーターセングラフです。頂点には0から9までの番号が振られており、各頂点には特定の文字が割り当てられています。このグラフ上のウォーク(歩行)Wを考えます。WはL個の頂点を使用します。長さLの文字列SがウォークWによって実現されるとは、Wで訪問した頂点に割り当てられた文字の並びがSと一致することを指します。なお、同じ頂点を何度訪問しても構いません。例えば、文字列Sが「ABBECCD」の場合、これはウォーク(0, 1, 6, 9, 7, 2, 3)によって実現されます。私たちのタスクは、与えられた文字列を実現するウォークを見つけることです。そのよ