|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.08.2020, 21:30 | #101 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Про 2ю. Еще раз скажу, что лучше запомнить алгоритм Эвклида для поиска НОД. А остальной код:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 10.08.2020 в 21:35. |
10.08.2020, 23:19 | #102 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
По третьей:
Код:
Как-то так, ...
|
11.08.2020, 15:16 | #103 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
А это мой вариант для 2 задачи
2) Код:
|
11.08.2020, 17:17 | #104 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
И всё же, как правильно отметил BDA, НОД следует искать через алгоритм Евклида.
Это самый быстрый алгоритм поиска НОД. В моём решении я про это просто забыл. Функцию можно записать так: (из ссылок ниже) Код:
https://foxford.ru/wiki/informatika/...evklida-python или тут: https://ru.wikibooks.org/wiki/%D0%A0...B8%D0%B4%D0%B0
Как-то так, ...
|
16.08.2020, 12:43 | #105 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Это задание, которое я сам сделал, но хотел узнать каким ешё образом это можно решить:
Определить количество предложений в заданном фрагменте текста. Входные данные В единственной строке задан фрагмент текста на английском языке, количество символов в котором не превышает 250. Гарантируется, что в тексте отсутствуют тире, дефисы, цифры и числа. Выходные данные Единственное число – количество предложений в фрагменте. Мой вариант: Код:
|
17.08.2020, 10:59 | #106 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Так думаю, что тут лучше использовать регулярные выражения.
Типа поиска конца предложения по маске: - <последний символ>[.] - <последний символ>! - <последний символ>\? С этим знаком слабо, поэтому и написал условно. Поисковик в помощь -"регулярные выражения python". Вот один из примеров: https://medium.com/nuances-of-progra...n-774fb2b62218
Как-то так, ...
|
18.08.2020, 15:58 | #107 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Есть две коробки. В первой находится a шаров, во второй b (0 < a + b < 2147483648). Шары разрешается перекладывать из одной коробки в другую. Причем перекладывать в любую из коробок можно только столько шаров, сколько в ней находится. Необходимо определить, можно ли все шары сложить в одну коробку.
Входные данные Каждая строка содержит два целых числа a и b, разделенных пробелом. Выходные данные Для каждого теста в отдельной строке вывести количество перекладываний, необходимое для того чтобы все шары находились в одной коробке, или -1, если это сделать невозможно. Мой вариант(не работает, дошёл до сюда): Код:
|
18.08.2020, 21:00 | #108 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Рассмотрим вариант, когда шары перекладываются.
Если рассмотреть процесс с конца, то перед последним перекладыванием в обоих коробках число шаров должно быть поровну m = n, где m, n - число шаров в коробках. m + n = a + b. Это значит, что число шаров должно быть чётным. Перед этим шагом в одной коробке должно быть p = (a+b)/4, а во второй - q = 3(a+b)/4. Если рассмотреть процесс дальше, то можно увидеть, что сумма числа шаров должна быть равна p + q =(2^n)p, где p - min(a,b), а n = 1,2,3, ... При этом, если меньшее число p, то большее может быть из ряда q = 2^{n-1} p. Это крайний вариант, когда q делится на p. Пример: p = 356. Тогда q может быть из ряда: p, 2p, 4p, 8p, ... Думаю, что из этого можно сделать вывод о том, что не следует использовать перебор. PS: Это только предварительное решение. Больше можно получить, если подумать, как определить допустимые соотношения между a и b. Т.е. смотрим на сумму a + b, определяем n, определяем p. Далее проверяем отношения вида a/p и b/p. ... Голова плохо соображает, ...
Как-то так, ...
Последний раз редактировалось ViktorR; 18.08.2020 в 21:07. |
30.08.2020, 11:46 | #109 |
Пользователь
Регистрация: 08.02.2020
Сообщений: 78
|
Спасибо)
Вот это задание я думаю что делаю правильно, но всё равно не получается. Что надо изменить? Для заданного положительного целого A (1 ≤ A ≤ 100), вывести значение младшего не нулевого бита A. Например, если A = 26, то его мы можем записать в двоичном виде, как 11010, и значение младшего бита A есть 10, и на выходе должно быть 2. Другой пример выглядит следующим образом: при A = 88, это число A мы можем записать в двоичной форме 1011000, значение младшего бита в A есть 1000, и на выходе должно быть 8. Входные данные Каждая строка входных данных содержит только одно целое число A (1 ≤ A ≤ 100). Строка, содержащая "0" означает конец ввода, и эта строка не является частью входных данных. Выходные данные Для каждого числа, полученного на входе, в отдельной строке вывести значение его младшего не нулевого бита. Мой вариант который не работает: Код:
|
30.08.2020, 15:55 | #110 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Цитата:
Вот пример без проверки ввода на ошибку. Код:
Числа в формате символов, например, '2' также хранятся в двоичном формате, но представляют собой код из таблицы. Так, в ASCII таблице символу '2' соответствует код 50 (десятичное) или 32 (шестнадцатеричное). Сдвиги битов числа можно делать вправо и влево. При сдвиге влево правая часть разрядов числа дополняется нулями: 00011 -- 00110 -- 01100 -- 1100 -- 10000 -- 00000 При сдвиге вправо левая часть числа заполняется знаком. Т.е. если число больше нуля, то нулями, а иначе - единицами. Код:
У меня получилось вот что: Код:
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
готовлюсь к олимпиаде по информатике | 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 |