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

与えられた年数の奇数日数を計算するC++プログラム


正の整数値nで与えられ、タスクは、与えられた年nまでの奇数日数を生成することです。

Input-: days = 500
Output-: number of odd days are: 5
Input-: days = 400
Output-: number of odd days are: 0

指定された年数の奇数日数を計算する方法

奇数日数を計算するために最初に確認する必要があるのは、特定の年がうるう年であるかどうかです。うるう年の場合、奇数日数が変更されるためです。年が100または400で割り切れるが、4で割り切れない場合、その年はうるう年になります。それ以外の場合は、通常の年になります。 7の合計日数、つまり1週間の日数のモジュラスを見つけた場合。したがって、通常の年は1つの奇数日で構成され、うるう年は2つの奇数日で構成されます。

特定のプログラムで使用しているアプローチは次のとおりです

  • 日数を入力として入力します
  • 年がうるう年か通常の日かを確認します
  • 合計日数をモジュラスで割って奇数日を計算します
  • 最終結果を1からnまでの1年の日数として表示します

アルゴリズム

Start
Step 1-> Declare function to calculate number of odd days in a given year
   int cal_odd(int days)
   declare int cal_1 = days / 100
   declare int cal_2 = days / 400
   declare int check_leap = days >> 2
   declare int temp = days - check_leap
   IF (cal_1)
      set temp += cal_1
      Set check_leap -= cal_1
   End
   IF (cal_2)
      Set temp -= cal_2
      Set check_leap += cal_2
   End
   declare int final_days = temp + check_leap * 2
   Declare int odd = final_days % 7
   return odd
step 2->In main()
   Declare int days = 500
   call cal_odd(days)
Stop
を宣言します

#include <iostream>
using namespace std;
//calculate number of odd days in a given year
int cal_odd(int days) {
    int cal_1 = days / 100;
    int cal_2 = days / 400;
    int check_leap = days >> 2;
    int temp = days - check_leap;
    if (cal_1) {
        temp += cal_1;
        check_leap -= cal_1;
    }
    if (cal_2) {
        temp -= cal_2;
        check_leap += cal_2;
    }
    int final_days = temp + check_leap * 2;
    int odd = final_days % 7;
    return odd;
}
int main() {
    int days = 500;
    cout<<"number of odd days are : "<<cal_odd(days);
    return 0;
}

出力

number of odd days are : 5

  1. 奇数回発生回数を見つけるためのC/C ++プログラム?

    正の整数の指定された配列で奇数回出現する数を見つけるC++プログラム。この配列では、すべての数字が偶数回出現します。 Input: arr[] = {5, 7, 8, 8, 5, 8, 8, 7, 7} Output: 7 説明 外側のループがすべての要素を1つずつトラバースし、内側のループが外側のループがトラバースした要素の発生数をカウントする2つのループを使用します。 例 #include <iostream> using namespace std; int Odd(int arr[], int n){    for (int i = 0; i <

  2. 与えられたグラフのブリッジエッジの数を見つけるためのC++プログラム

    n個の頂点とm個のエッジを含む重み付けされていない無向グラフが与えられたとします。グラフのブリッジエッジは、グラフを削除するとグラフが切断されるエッジです。与えられたグラフでそのようなグラフの数を見つける必要があります。グラフには、平行なエッジや自己ループは含まれていません。 したがって、入力がn =5、m =6、edges ={{1、2}、{1、3}、{2、3}、{2、4}、{2、5}、{3 、5}}の場合、出力は1になります。 グラフには、{2、4}のブリッジエッジが1つだけ含まれています。 これを解決するには、次の手順に従います- mSize := 100 Define an