|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.12.2019, 23:08 | #1 |
Регистрация: 08.12.2019
Сообщений: 5
|
пользователь вводит год и программа выдает количество дней в году.
Начинаю изучать СИ++
Нужна помощь людей с опытом. Есть задачка: Написать программу для консоли windows пользователь вводит год и программа выдает количество дней в году. Есть условие , не использование операторов ветвления. решение должно быть линейным. Может кто помочь с идеей? |
08.12.2019, 23:25 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 16,220
|
Идея такая. Количество дней в високосном году отличается на 1 от обычного года. Следовательно если составить условие проверки на високосность (делится на 4 и так далее, там еще есть дополнительные требования), то в случае его истинности как раз получаем нужную нам 1, которую добавляем к 365. А если будет ложь, то бишь 0, то на выходе так и останется 365.
E-Mail: arigato.freelance@gmail.com
|
09.12.2019, 07:20 | #3 |
Регистрация: 08.12.2019
Сообщений: 5
|
Да, если идти через проверку на истину или ложь то по идее , это уже ветвление же. Вот я и пытаюсь понять как составить линейный алгоритм.
обычно все решается проверкой остатка на деление на 100 year%100!=0&&year%4==0 и year%100==0&&year%400==0 но как я понял , это уже не линейное решение. |
09.12.2019, 09:27 | #4 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,792
|
как-то линейным перебором дни проверить на делимость на 4 и на 400. да и процедуру очистки экрана надо бы как-то использовать, чтоб напечатать новое значение года и затереть старое...
хотя, любая проверка - это уже хотя бы 1 условие.... от вас точно не пытаются на факультете избавиться?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 09.12.2019 в 09:30. |
09.12.2019, 10:57 | #5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 16,220
|
Ветвление это условный оператор. А я предлагаю простое логическое выражение, которое в ответе дает 0 или 1. Или непонятно?
E-Mail: arigato.freelance@gmail.com
|
09.12.2019, 14:30 | #6 |
Регистрация: 08.12.2019
Сообщений: 5
|
Спасибо, вроде понял, это если вместо if использовать ? И :
Это будет считаться как последлыательное выполнение операторов? |
09.12.2019, 15:16 | #7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 16,220
|
Нет, не использовать "? :", а использовать булевы выражения.
E-Mail: arigato.freelance@gmail.com
|
09.12.2019, 20:11 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,537
|
Легко. Создаем массив констант Код:
Но на 1900-м, 2100-м и т.д. будет буксовать. Тут уж без if трудновато, но можно извернуться. Последний раз редактировалось digitalis; 09.12.2019 в 20:23. |
09.12.2019, 20:18 | #9 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,304
|
Вот тут описано как вычислить номер дня по Юлианскому календарю
https://ru.wikipedia.org/wiki/%D0%AE...B0%D1%82%D0%B0 1. Вводится год - YYYY 2. Вычисляется номер первого дня этого года: N(YYYY) 3. Вычисляется номер первого дня следующего года: M(YYYY+1) 4. Вычисляем количество дней в году: M(YYYY+1) - N(YYYY) Вот код на Python: Код:
Как-то так, ...
Последний раз редактировалось ViktorR; 09.12.2019 в 20:52. |
09.12.2019, 20:30 | #10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 16,220
|
Вы точно с C++ знакомы?
E-Mail: arigato.freelance@gmail.com
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача: Пользователь вводит число М. Далее программа предлагает пользователю последовательно ввести 10 чисел | Andarang | JavaScript, Ajax | 5 | 06.06.2017 09:27 |
аналог целочисленной таблицы умножения для дробей. Пользователь вводит знаменатель, а программа должна подобрать всевозможные целые значения числителя | KAMLS | Общие вопросы C/C++ | 6 | 05.05.2017 14:45 |
Программа на C++ для работы со структурой. Помогите найти ошибку: вместо значения, которое вводит пользователь, выводит мусор | alinka--- | Помощь студентам | 2 | 18.12.2015 18:38 |
Заполнение массива. Первый элемент вводит пользователь, а дальше рассчитывает программа | НаташенькаRu | Помощь студентам | 8 | 25.10.2010 21:03 |
Как подсчитать количество дней недели в году? | delphiboy | Microsoft Office Excel | 6 | 28.02.2010 04:39 |