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

Программа на C++, которая вычисляет количество нечетных дней в данном году

Дан положительное целое значение n, задача - сгенерировать количество нечётных дней до заданного года n.

Пример

Input-: дни = 500
Output-: количество нечётных дней: 5
Input-: дни = 400
Output-: количество нечётных дней: 0

Как вычислить количество нечётных дней в заданном году

При вычислении нечётных дней首先要检查, является ли заданный год високосным, так как в этом случае нечётные дни изменятся. Если год деляется на 100 или 400, но не на 4, то этот год будет високосным, в противном случае он будет обычным годом. Если мы используем 7 для вычисления модуля总数 дней, то это количество дней в неделе. Таким образом, обычные годы включают 1 нечётный день, а високосные годы включают 2 нечётных дня.

Мы используем следующий метод в заданной программе-

  • Ввести количество дней в качестве ввода

  • Проверьте, является ли год a високосным или обычным

  • Число нечётных дней рассчитывается, деля总数 дней на модуль

  • Показать конечный результат как количество дней от 1 до n в году

Алгоритм

Start
Шаг 1-> Объявить функцию для вычисления количества нечетных дней в данном году
   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
   Объявить int odd = final_days % 7
   return odd
шаг 2->В main() Объявить int days = 500
   call cal_odd(days)
Stop

Пример

#include <iostream>
using namespace std;
// Рассчитать количество нечетных дней в данном году
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 << "Нечетные дни: " << cal_odd(days);
    return 0;
}

Результат вывода

Нечетные дни: 5
Основной учебник
Даже если вам не нравится