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

C++でうるう年を判定するプログラムの書き方

うるう年とは

うるう年とは、暦の年と天文学的な年(地球の公転周期)とのずれを解消するために、1日が追加される年のことです。通常の年は365日ですが、うるう年は366日となります。

うるう年の判定ルールは以下のとおりです。

  • 4で割り切れる年はうるう年である
  • ただし、100で割り切れる年はうるう年ではない
  • さらに、400で割り切れる年はうるう年である

ある年がうるう年かどうかを判定するC++プログラムは、以下のとおりです。

例:条件式を使ったうるう年判定プログラム

#include<iostream>
using namespace std;
int main() {
    int year = 2016;
    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
    cout<<year<<"はうるう年です";
    else
    cout<<year<<"はうるう年ではありません";
    return 0;
}

出力結果

2016はうるう年です

このプログラムでは、「年が4で割り切れ、かつ100で割り切れない」場合、または「年が400で割り切れる」場合に、その年をうるう年と判定します。

判定を行っているのは、以下の部分のコードです。

if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
cout<<year<<"はうるう年です";
else
cout<<year<<"はうるう年ではありません";

例:ネストしたif文を使ったうるう年判定プログラム

うるう年かどうかの判定は、入れ子(ネスト)にしたif文を使って書くこともできます。以下がその例です。

#include <iostream>
using namespace std;
int main() {
    int year = 2020;
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            if (year % 400 == 0)
            cout << year << "はうるう年です";
            else
            cout << year << "はうるう年ではありません";
        } else
        cout << year << "はうるう年です";
    } else
    cout << year << "はうるう年ではありません";
    return 0;
}

出力結果

2020はうるう年です

このプログラムでは、まず年が4で割り切れるかどうかを判定します。4で割り切れる場合は、次に100で割り切れるかどうかを確認します。100で割り切れる場合は、さらに400で割り切れるかどうかを判定し、割り切れればその年はうるう年、そうでなければうるう年ではありません。100で割り切れない場合は、その年はうるう年です。また、4で割り切れない年はうるう年ではありません。

この判定ロジックは、以下のコード部分で実装されています。

if (year % 4 == 0) {
    if (year % 100 == 0) {
        if (year % 400 == 0)
        cout << year << "はうるう年です";
        else
        cout << year << "はうるう年ではありません";
    } else
    cout << year << "はうるう年です";
} else
cout << year << "はうるう年ではありません";
  1. C++で対合行列(インボリュートリー行列)を判定するプログラムの実装方法

    行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表します。ここでは r = c、つまり正方行列である場合を考えます。この記事では、与えられた正方行列が対合行列(インボリュートリー行列)であるかどうかを判定する方法を解説します。 対合行列とは 対合行列とは、ある行列を自分自身と掛け合わせたとき、その積が単位行列になるような行列のことです。単位行列 I とは、主対角成分がすべて 1 で、それ以外の要素がすべて 0 である行列を指します。 したがって、行列 M が対合行列であるための必要十分条件は次のように表せます。 M × M = I ここで、M は任意の行列、I は単位行列で

  2. C++でべき等行列を判定するプログラムの作成方法

    行数を r、列数を c とする行列 M[r][c] が与えられ、r = c となる正方行列を考えます。この記事では、与えられた正方行列がべき等行列(アイデンポテント行列)であるかどうかを判定するC++プログラムを解説します。 べき等行列とは 行列 M がべき等行列であるとは、行列 M と自分自身の積が元の行列 M と等しくなること、すなわち M × M = M が成り立つことを指します。 例えば、次の行列を見てください。 この行列を自分自身で掛け合わせても、結果は元の行列とまったく同じになります。したがって、この行列はべき等行列であると言えます。 べき等行列の代表的な例としては、ベクトルを