|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.05.2020, 17:18 | #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. |
17.05.2020, 18:50 | #22 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
По поводу простых делителей. Это практически тоже самое, что и поиск делителей числа. Только нужно оставить те делители, которые сами являются простыми числами.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.05.2020, 19:44 | #23 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Код:
PS: Ваш код можно закончить Код:
Как-то так, ...
|
|
17.05.2020, 20:09 | #24 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Вот и моя версия тогда. Но это просто сокращение кода. Мне кажется, должна быть формула.
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
17.05.2020, 22:57 | #25 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Написал свой пост. Подумал о списке, но пошел ужинать.
Нет. Вроде такой формулы нет. Давно, очень много лет тому назад (скажем так, около 40-ка), меня самого эта глупая задачка достала. Программу я не писал, но закономерность пытался найти PS: Понятно, что Интернета тогда не было и задачка явилась то ли от безделья, то ли от перенапряга. Уже не помню.
Как-то так, ...
|
18.05.2020, 03:39 | #26 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Получилось достаточно быстрое решение, но, во-первых, много времени убил на написание (то есть не успеть за время очного тура олимпиады), во-вторых, к концу отладки сам уже запутался
Погонял на разных случайных входных данных, вроде работает. Может быть, можно привести и в более читаемый вид. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.05.2020 в 04:05. |
18.05.2020, 17:13 | #27 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Если чесно, я не понял как работает ваша программа Это вы пытались найти формулу? Если сделать без формулы, то я думаю будет понятней для каждого: И для начинаюшего, и для ПРОграммиста.
|
18.05.2020, 20:27 | #28 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
На олимпиадах обычно достаточно жесткие ограничения по объему используемой памяти и времени работы программы. Поэтому "наивные" алгоритмы (перебор в лоб) просто не пройдут. Например, сравнение по времени работы кода из 24 и 26 постов для разных входных данных:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 18.05.2020 в 20:41. |
18.05.2020, 21:07 | #29 | |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Цитата:
|
|
24.05.2020, 16:44 | #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 |