Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 12:04   #1
KramuS
 
Регистрация: 11.10.2009
Сообщений: 3
По умолчанию Задача в С++ Помогите плз!

В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначаются названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1924 год – год зеленой крысы – был началом очередного цикла).
Написать программу, которая вводит номер некоторого года и печатает его название по старояпонскому календарю.


У меня с названиями животных всё получилось. Но как сделать чтобы цвета совпадали???

Неоходимо сделать с использованием оператора switch
KramuS вне форума Ответить с цитированием
Старый 11.10.2009, 13:23   #2
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Украина. Львовская обласная олимпиада школьников с информатики-2009. Семпл-задача.

Если речь идет о каком-небудь годе после 1924, то просто рассматриваем значение (((y-1924)%60+1)-1)/12+1 ;

(y-1924)%60+1 - номер года в 60-летнем цикле, все выражение вообще - номер 12летнего подцикла. Если убрать +1 вконце, то получим, сколько подциклов внутри цикла уже закончилось.

Последний раз редактировалось LeBron; 11.10.2009 в 14:50.
LeBron вне форума Ответить с цитированием
Старый 11.10.2009, 13:27   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

если речь идет о более древних временах (как было на той олимпиаде), то можно или от 1924 отнять, например, 6000 (тогда все модули сохранятся), или к году прибавить 6000 (тоже сохранятся, ведь 6000%60==0), или рассматривать отрицательные значения и их модули (что довольно рисковано для новичков)

Последний раз редактировалось LeBron; 11.10.2009 в 14:50.
LeBron вне форума Ответить с цитированием
Старый 11.10.2009, 14:23   #4
KramuS
 
Регистрация: 11.10.2009
Сообщений: 3
По умолчанию

спасибо LeBron =)
KramuS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal]: Задача на символьную строку, цикл, одномерные массивы., выручите плз Knife Помощь студентам 2 31.03.2009 21:41
Задача на массив легкая но с заморочкой решите плз Ruster Паскаль, Turbo Pascal, PascalABC.NET 2 11.01.2009 23:09
помогите плз! nok Безопасность, Шифрование 6 18.02.2007 10:21