Технический форум
Вернуться   Технический форум > Программирование > Форум программистов


Ответ
 
Опции темы Опции просмотра
Старый 02.11.2015, 00:17   #1 (permalink)
Mr Kejik
Новичок
 
Регистрация: 01.11.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Олимпиадные задачки

Привет всем, господа, можете подсказать - какими способами можно решить эти задачи?

Олимпиада уже завершена - свои варианты прилагаю.
Миниатюры
vyxc4s1yak4.jpg   kbyegnxbpr8.jpg   aaxdqmkpyk0.jpg  
Вложения
Тип файла: rar Олимпиада.rar (2.1 Кб, 30 просмотров)
Mr Kejik вне форума   Ответить с цитированием

Старый 02.11.2015, 00:17
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Иногда для успешного решения проблемы стоит лишь обратить внимание на схожие топики

Паскальчик, задачки
Кто решит задачки?
Три задачки
Две задачки, массивы
Задачки на Pascal

Старый 03.11.2015, 09:14   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Способом перебора, однако
__________________
Убить всех человеков!
AlexZir на форуме   Ответить с цитированием
Старый 03.11.2015, 12:57   #3 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,273
Записей в дневнике: 7
Сказал(а) спасибо: 291
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Это он до Покрова будет перебирать циферки в стозначном числе.
Николай_С вне форума   Ответить с цитированием
Старый 03.11.2015, 12:59   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Какой вопрос - такой ответ
__________________
Убить всех человеков!
AlexZir на форуме   Ответить с цитированием
Старый 03.11.2015, 13:15   #5 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

Ну посмотрел, в принципе ничего особо сложного, что там внутри архива не смотрел

Для первой задачи я бы следующий алгоритм применил:
1. Берем старший разряд, если он меньше 9, то декремент от 9 до значения разряда + 1
2. Заменяем значение разряда на текущее и проверяем делится ли на 3 без остатка, если делится, прерываем цикл и показываем полученное число
3. Если не нашли решения , то переходим к следующему по старшинству разряду, и далее к пункту 2


Остальные лень решать, но в принципе все решаемы не очень сложными методами
MagentaTiger вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.11.2015, 13:33   #6 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

А да, так как 100 разрядные числа проверить на деление на 3 в разрядной сетке даже длинного целого не реально, для проверки можно сложить все разряды числа и проверить эту сумму на деление на 3 ...
MagentaTiger вне форума   Ответить с цитированием
Старый 03.11.2015, 14:53   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Не, ну можно впрячься и это всё прорешать, ничего особо сложного, только вот так ли уж надо? Работы много, времени потребуется куча... К тому же там оговорен Кумир либо Pascal/Delphi, а товарищ пытается штурмовать это дело на СИ.
Vladimir_S вне форума   Ответить с цитированием
Старый 04.11.2015, 01:20   #8 (permalink)
Mr Kejik
Новичок
 
Регистрация: 01.11.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Нуу...
Там штук 10 языков было, в том числе и С++, и Java, и PHP.
Первая - задача вообще однострочная (на С++)
Метод перебора применен только в 4-ой задаче

А вообще, я просто совета искал, может кто знает еще пути для решения
Mr Kejik вне форума   Ответить с цитированием
Старый 04.11.2015, 01:21   #9 (permalink)
Mr Kejik
Новичок
 
Регистрация: 01.11.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Николай_С Посмотреть сообщение
Это он до Покрова будет перебирать циферки в стозначном числе.
За секунду, даже меньше, вполне справляется
Mr Kejik вне форума   Ответить с цитированием
Старый 04.11.2015, 01:30   #10 (permalink)
Mr Kejik
Новичок
 
Регистрация: 01.11.2015
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А вообще, если хотите, ради интереса можете попробовать сделать 4-ую задачу через деление именно самого числа для выяснения ответа, а не через деление суммы разрядов. У моего отца очень хорошо получилось написать такое, но на 1С
Mr Kejik вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
олимпиада, простейшие задачи, просто поговорить, с++

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 06:18.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.