C#でFizzBuzzを実装する方法【初心者向けサンプルコード付き】
FizzBuzzは、プログラミング学習の定番課題として知られている問題です。1から100までの数字を出力し、3の倍数の場合は「Fizz」、5の倍数の場合は「Buzz」、そして3と5の両方の倍数(つまり15の倍数)の場合は「FizzBuzz」と表示します。
以下に、FizzBuzzを実装したC#プログラムの例を示します。
サンプルコード
using System;
namespace FizzBuzzDemo {
public class example {
static void Main(string[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
Console.WriteLine("FizzBuzz");
} else if (i % 3 == 0) {
Console.WriteLine("Fizz");
} else if (i % 5 == 0) {
Console.WriteLine("Buzz");
} else {
Console.WriteLine(i);
}
}
}
}
}出力結果
上記のプログラムを実行すると、以下のような出力が得られます。
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz
プログラムの解説
それでは、このプログラムの仕組みを詳しく見ていきましょう。
まず、forループを使って1から100までの数値を順番に生成します。続いて、一連のif文による条件分岐で、現在の数値 i が3で割り切れるか、5で割り切れるか、あるいはその両方で割り切れるかを判定しています。
- 3でのみ割り切れる場合 →「Fizz」を出力
- 5でのみ割り切れる場合 →「Buzz」を出力
- 3と5の両方で割り切れる場合 →「FizzBuzz」を出力
- いずれの条件にも当てはまらない場合 → 数値をそのまま出力
なお、両方の倍数の判定(i % 3 == 0 && i % 5 == 0)を最初に行っている点がポイントです。もし3の倍数の判定を先に書いてしまうと、15の倍数がすべて「Fizz」として処理され、「FizzBuzz」が一度も表示されなくなってしまいます。該当するコード部分は以下の通りです。
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 && i % 5 == 0) {
Console.WriteLine("FizzBuzz");
}else if (i % 3 == 0) {
Console.WriteLine("Fizz");
} else if (i % 5 == 0) {
Console.WriteLine("Buzz");
} else {
Console.WriteLine(i);
}
}
-
C++でAVL木(AVLツリー)を実装する方法:回転操作とサンプルコードを徹底解説
AVL木とは AVL木(AVL Tree)は、自己平衡型二分探索木(Self-balancing Binary Search Tree)の一種です。すべてのノードにおいて、左部分木と右部分木の高さの差が「1以下」に保たれるという性質を持っています。この平衡条件により、木が片側に偏って成長することを防ぎ、検索・挿入・削除といった操作を常に効率的(O(log n))に行うことができます。 木の回転(Tree Rotation)とは 木の回転とは、要素の順序(ソート順)を崩すことなく木の構造を変更する操作のことです。あるノードを一段上へ移動させ、別のノードを一段下へ移動させることで実現されます。 回
-
【C++】STLのset_symmetric_differenceで集合の対称差を実装するプログラム
本記事では、C++の標準テンプレートライブラリ(STL)に含まれる set_symmetric_difference 関数を使って、2つの集合の「対称差」を求めるプログラムを紹介します。 対称差とは、2つの集合のうち「どちらか一方にだけ存在し、両方には存在しない」要素から構成される集合のことです。 主な集合演算の種類 和集合(Union):どちらか一方に含まれるすべての要素 積集合(Intersection):両方に共通して含まれる要素 対称差(Symmetric Difference / 排他的論理和 XOR):片方にのみ含まれる要素 差集合(Difference / 減算):一方から他方