![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
![]()
Это задание я смог выполнить, но хочу узнать как можно упростить:
Однажды в сундуке своего дедушки Алпай нашёл электронный калькулятор. Цифры на нём отображались с помощью семи сегментных индикаторов. Например, для изображения цифры 0 отображаются (становятся черными) 6 сегментов, цифры 7 – 3 сегмента. Алпай стал по очереди набирать на калькуляторе все числа, находящиеся между двумя некоторыми целыми числами a до b, включая и сами эти числа. После набора каждого числа Алпай считал количество появившихся сегментов и нажимал кнопку сброса. А потом он решил сделать программу, которая сама подсчитает общее количество сегментов, которые отобразятся на калькуляторе при наборе всех этих чисел. Помогите Алпайу это сделать. Например, если a = 1 и b = 3, то на калькуляторе сначала отобразится 2 сегмента, затем – 5 и снова отобразится 5 сегментов. Таким образом, общее количество отображённых сегментов будет равно 12. Входные данные: В единственной строке находится пара целых чисел a, b (1 ≤ a , b ≤ 106). Выходные данные: Выведите одно целое число – общее количество отображённых сегментов. Мой вариант: Код:
Последний раз редактировалось FsGaCh; 17.05.2020 в 17:37. |
![]() |
![]() |
![]() |
#22 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
По поводу простых делителей. Это практически тоже самое, что и поиск делителей числа. Только нужно оставить те делители, которые сами являются простыми числами.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#23 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,318
|
![]() Цитата:
![]() Код:
PS: Ваш код можно закончить Код:
![]()
Как-то так, ...
|
|
![]() |
![]() |
![]() |
#24 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
Вот и моя версия тогда. Но это просто сокращение кода. Мне кажется, должна быть формула.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#25 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,318
|
![]()
Написал свой пост. Подумал о списке, но пошел ужинать.
![]() Нет. Вроде такой формулы нет. Давно, очень много лет тому назад (скажем так, около 40-ка), меня самого эта глупая задачка достала. Программу я не писал, но закономерность пытался найти ![]() PS: Понятно, что Интернета тогда не было и задачка явилась то ли от безделья, то ли от перенапряга. Уже не помню. ![]()
Как-то так, ...
|
![]() |
![]() |
![]() |
#26 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
Получилось достаточно быстрое решение, но, во-первых, много времени убил на написание (то есть не успеть за время очного тура олимпиады), во-вторых, к концу отладки сам уже запутался
![]() Погонял на разных случайных входных данных, вроде работает. Может быть, можно привести и в более читаемый вид. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 18.05.2020 в 04:05. |
![]() |
![]() |
![]() |
#27 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
![]()
Если чесно, я не понял как работает ваша программа
![]() |
![]() |
![]() |
![]() |
#28 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
На олимпиадах обычно достаточно жесткие ограничения по объему используемой памяти и времени работы программы. Поэтому "наивные" алгоритмы (перебор в лоб) просто не пройдут. Например, сравнение по времени работы кода из 24 и 26 постов для разных входных данных:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 18.05.2020 в 20:41. |
![]() |
![]() |
![]() |
#29 | |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#30 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
![]()
Стоимость бутылки воды, учитывая стоимость пустой бутылки, составляет 1 доллар 20 сентов, а стоимость пустой бутылки 20 сентов.
Сколько бутылок воды можно выпить на n долларов, учитывая, что пустые бутылки можно сдавать, и на полученные деньги приобретать новые бутылки воды. Входные данные: Натуральное число n (1 ≤ n ≤ 1000). Выходные данные: Количество бутылок воды, которое можно выпить на n долларов. Примечание: Вода без бутылки не продаётся. Мой вариант, но я сомневаюсь в правильности: Код:
Последний раз редактировалось FsGaCh; 24.05.2020 в 17:00. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
готовлюсь к олимпиаде по информатике | salauat | Паскаль, Turbo Pascal, PascalABC.NET | 25 | 01.12.2013 21:32 |
Подготовиться к олимпиаде за лето | UaKot | Свободное общение | 20 | 10.05.2013 18:53 |
Подготовка к региональной олимпиаде | New man | Помощь студентам | 20 | 14.12.2012 21:01 |
Задачи по олимпиаде | Darick | Помощь студентам | 7 | 23.12.2011 15:45 |
Как подготовиться к олимпиаде? | Kn793 | Помощь студентам | 16 | 26.07.2008 12:22 |