C++で指定した年の世紀を求めるプログラム
はじめに
このチュートリアルでは、与えられた年が何世紀に属するのかを判定するC++プログラムについて解説します。
プログラムには1つの年が入力として渡され、その年が属する世紀を出力するのが目的です。
世紀の計算ルール
世紀の判定は、以下のルールに基づいて行います。
- 年が100以下の場合 → 1世紀
- 年が100で割り切れる場合 → 年 ÷ 100 の値がそのまま世紀
- それ以外の場合 → 年 ÷ 100 + 1 が世紀
例えば、2000年は20世紀の最後の年であり、2001年は21世紀の最初の年にあたります。
サンプルコード
#include <bits/stdc++.h>
using namespace std;
void find_century(int year){
// 年は正の値のみ有効
if (year <= 0)
cout << "0および負の値は年として使用できません";
else if (year <= 100)
cout << "1世紀\n";
else if (year % 100 == 0)
cout << year / 100 << "世紀";
else
cout << year / 100 + 1 << "世紀";
}
int main(){
int year = 2001;
find_century(year);
return 0;
}
実行結果
21世紀
コードの解説
このプログラムでは、find_century 関数が年の値を受け取り、以下の手順で世紀を判定します。
- まず、年が0以下でないかをチェックします。0や負の値は有効な年ではないため、エラーメッセージを表示します。
- 次に、年が100以下の場合は「1世紀」と判定します。1年〜100年が1世紀に相当するためです。
- 年が100で割り切れる場合(例:1900年、2000年)、その年は世紀の最後の年となるため、
year / 100の結果がそのまま世紀番号になります。 - それ以外の場合は、
year / 100 + 1で世紀番号を求めます。例えば2001年は 2001 ÷ 100 = 20 余り 1 となるため、20 + 1 = 21世紀という結果になります。
まとめ
整数除算の性質を利用することで、複雑な処理を行わずにシンプルな条件分岐だけで世紀を求められることが分かりました。特に「100で割り切れる年は世紀の最後の年になる」という点に注意することが、正しく実装するためのポイントです。
-
C++でピラミッドの体積を計算するプログラムの作り方|底面の形状別の公式と実装例
ピラミッドの底面の種類に応じた辺の長さが与えられたとき、そのピラミッドの体積を計算するのが本記事のテーマです。 ピラミッドとは、外側の面がすべて三角形で構成され、それらが共通の一点(頂点)で交わることで鋭い角を形成する3次元図形です。ピラミッドの体積は、底面がどのような形状であるかによって異なります。 ピラミッドの底面にはさまざまな種類があり、代表的なものは以下の通りです。 底面の形状別の体積の求め方 三角形の底面(三角錐) 底面が三角形の場合、ピラミッドの体積は次の公式で求められます。 体積 = (1/6) × a × b × h 正方形の底面(四角錐) 底面が正方形の場合、ピラミッドの体
-
C++で学ぶクイックソート(QuickSort)の仕組みと実装方法
クイックソートとはクイックソート(Quicksort)は、比較に基づいて未ソートのリスト(配列)を並べ替えるソートアルゴリズムの一つです。「パーティション交換ソート(partition exchange sort)」とも呼ばれます。クイックソートは安定ソートではありません。これは、等しい値を持つ要素同士の相対的な順序が保持されないためです。ただし、配列に対してごくわずかな追加メモリだけで動作するため、メモリ効率に優れています。選択ソートと非常に似ていますが、常に最悪のパーティションを選んでしまうわけではない点が異なり、より洗練された形の選択ソートと捉えることもできます。クイックソートは最も効率