Рубрики
-
Свежие записи
Архивы
Свежие комментарии
- Vaseg к записи Тяга к знаниям — возраст?
C++ задача Горыныч. Однажды Добрыня Никитич решил наведаться к Змею Горынычу.
C++ задача Горыныч. Однажды Добрыня Никитич решил наведаться к Змею Горынычу.
Для решения данной задачи можно использовать switch-case конструкцию, чтобы определить количество дней, которое нужно ждать Добрыне Никитичу.
Вначале, нужно определить количество дней в каждом месяце. Для этого можно использовать switch-case конструкцию, где каждому месяцу будет соответствовать определенное количество дней.
Затем, нужно определить количество дней, которое прошло с начала года до указанной даты. Для этого можно использовать switch-case конструкцию, где каждому месяцу будет соответствовать сумма дней всех предыдущих месяцев, плюс количество дней в указанном месяце.
Наконец, нужно вычесть полученное количество дней из общего количества дней в году (365 или 366, в зависимости от високосного года), чтобы определить сколько дней осталось до конца года.
Вот пример решения данной задачи на языке C++:
#include <iostream>
int main() {
int year, month, day;
std::cin >> year >> month >> day;
int daysInMonth;
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
daysInMonth = 31;
break;
case 4: case 6: case 9: case 11:
daysInMonth = 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
break;
}
int daysPassed = 0;
for (int i = 1; i < month; i++) {
switch (i) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
daysPassed += 31;
break;
case 4: case 6: case 9: case 11:
daysPassed += 30;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysPassed += 29;
} else {
daysPassed += 28;
}
break;
}
}
daysPassed += day;
int daysLeft;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysLeft = 366 - daysPassed;
} else {
daysLeft = 365 - daysPassed;
}
std::cout << daysLeft << std::endl;
return 0;
}
В данном примере, программа считывает год, месяц и день с помощью функции std::cin. Затем, используя switch-case конструкцию, определяет количество дней в указанном месяце и количество дней, которое прошло с начала года до указанной даты. Наконец, вычисляется количество дней, оставшихся до конца года, и выводится на экран с помощью функции std::cout.