English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Data un valore intero positivo n, il compito è generare i giorni dispari fino all'anno n fornito.
Input-: giorni = 500 Output-: numero di giorni dispari: 5 Input-: giorni = 400 Output-: numero di giorni dispari: 0
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
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
#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