English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Programma C++ che calcola il numero di giorni dispari in un anno specifico

Data un valore intero positivo n, il compito è generare i giorni dispari fino all'anno n fornito.

Esempio

Input-: giorni = 500
Output-: numero di giorni dispari: 5
Input-: giorni = 400
Output-: numero di giorni dispari: 0

Come calcolare il numero di giorni dispari in un anno dato

Quando calcoliamo i giorni dispari, la prima cosa che dobbiamo controllare è se l'anno fornito è un anno bisestile, perché se è un anno bisestile, il numero di giorni dispari cambia. Se l'anno può essere diviso per 100 o 400 ma non per 4, allora quell'anno sarà l'anno bisestile, altrimenti sarà un anno comune. Se calcoliamo il modulo del numero totale dei giorni con 7, ossia i giorni della settimana. Quindi, gli anni comuni includono 1 giorno dispari, gli anni bisestili includono 2 giorni dispari.

I metodi che utilizziamo nel programma fornito sono i seguenti-

  • Inserire i giorni come input

  • Controllare se l'anno è un anno a o un giorno comune

  • Calcolando il numero di giorni dispari dividendo il numero totale di giorni per il modulo

  • Mostra il risultato finale come il numero di giorni da 1 a n dell'anno

Algoritmo

Start
Passo 1-> Dichiarare la funzione per calcolare il numero di giorni dispari dell'anno specificato
   int cal_odd(int days)
   Dichiarare int cal_1 = days / 100
   Dichiarare int cal_2 = days / 400
   Dichiarare int check_leap = days >> 2
   Dichiarare int temp = days - check_leap
   SE (cal_1)
      Impostare temp += cal_1
      Impostare check_leap -= cal_1
   End
   SE (cal_2)
      Impostare temp -= cal_2
      Impostare check_leap += cal_2
   End
   Dichiarare int final_days = temp + check_leap * 2
   Dichiarare int odd = final_days % 7
   return odd
Passo 2->In main() Dichiarare int days = 500
   chiamare cal_odd(days)
Stop

Esempio

#include <iostream>
using namespace std;
//Calcola il numero di giorni dispari dell'anno specificato
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 << "Giorni dispari: " << cal_odd(days);
    return 0;
}

Risultato di output

Giorni dispari: 5