М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Юлька9062804
Юлька9062804
24.10.2022 19:33 •  Информатика

Правило Боба Получив от Алисы несколько зашифрованных сообщений, Боб решил вплотную заняться криптографией. И первое, что он сделал, естественно, - придумал свой шифрования целых положительных чисел. Боб решил поставить в соответствие целому положительному числу K=a1a2a3a4an несократимую дробь вида M/N по правилу показанному, на рисунке (здесь n - количество цифр числа, a1, a2, ..an - сами цифры):

Например, числу 3 по этому правилу будет соответствовать дробь 3/1. Числу 25 будет соответствовать дробь 11/5. Числу 234 - дробь 30/13, а числу 6235 - дробь 238/37.
Напишите для Боба программу, которая, получив на входе некоторое целое положительное число K, выведет несократимую дробь, полученную в соответствии с правилом Боба.

Формат входных данных
Единственная строка входных данных содержит целое положительное число K (1 ≤ K ≤ 1018). Гарантируется, что число K не оканчивается нулем и не начинается лидирующими нулями.

Формат результата
Выведите несократимую дробь, которая получается из входного числа по правилу Боба. Если в результате примeнения правила Боба к входному числу получается целое число N, его необходимо вывести как дробь со знаменателем 1, то есть в виде N/1.

Примеры
Входные данные
25
Результат работы
11/5=2+1/5
Входные данные
234
Результат работы
30/13=2+1/3+1/4

👇
Ответ:
zverok21rus
zverok21rus
24.10.2022
Добрый день! Рад вам помочь с этой задачей по криптографии. Для решения данной задачи можно использовать цикл, который будет постепенно находить дроби и выводить их.

Начнем с написания псевдокода решения задачи:

1. Считываем целое положительное число K с помощью функции input().
2. Переменные M и N устанавливаем равными 1, так как изначально у нас имеется целое число.
3. Создаем пустую строку result, в которой мы будем хранить результат вывода в нужном формате.
4. Запускаем цикл, который будет работать до тех пор, пока K не станет равным 0.
5. Внутри цикла:
- Находим количество цифр в числе K и сохраняем его в переменную n.
- Вычисляем число a1, равное первой цифре числа K, с помощью операции % (остаток от деления) и // (целочисленное деление).
- Вычисляем значение переменной M, умножая a1 на N и прибавляя M.
- Устанавливаем значение переменной K, равное числу, полученному из числа K после удаления первой цифры (с помощью операции // 10).
- Обновляем значение переменной N, умножая ее на 10 (так как на каждом шаге у нас появляется новая цифра справа).
- Добавляем в переменную result текущую дробь (a1/N) с помощью строки формата.
6. После окончания цикла проверяем, осталось ли у нас целое число или есть дробные части, сохраненные в K.
- Если K равно 0, значит, у нас получилось целое число, и в результате выводим результат в формате N/1.
- Если K больше 0, значит, у нас есть дробная часть. В этом случае располагаем дробные части в нужные позиции и выводим результат.

Теперь, когда у нас есть псевдокод, можно перейти к реализации на выбранном языке программирования. Приведу пример решения на языке Python:

```python
# Чтение входного числа K
K = int(input())

# Инициализация переменных M и N
M = 1
N = 1

# Инициализация пустой строки result
result = ""

# Цикл для нахождения дробных частей
while K != 0:
n = len(str(K))
a1 = K % 10
M = a1 * N + M
K = K // 10
N = N * 10
result += f"{a1}/{N}+"

# Проверка наличия дробной части
if K == 0:
result = result[:-1] # Удаление последнего символа (плюса)
print(f"{M}/{N}= {result}")
else:
result = result[:-1] # Удаление последнего символа (плюса)

# Добавление дробных частей в нужные позиции
for i in range(1, n):
fraction = f"1/{N}"
result = result[:-(2 * i)] + fraction + result[-(2 * i):]

print(f"{M}/{N}= {result}")
```

Надеюсь, что данное объяснение и код помогут вам понять, как решить данную задачу. Если у вас возникнут вопросы, не стесняйтесь задавать их!
4,8(34 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ