-
30 December 2020
Информатика
- Автор: MrMiner1
Язык: C++
Реализовать программу с форматированным определенным образом выводом. Допустим, выводим результат деления a на b:
Входные данные:
3 2
Вывод: 1.5
Входные данные:
8 9
Вывод: \frac{8}{9}
По сути: если получившееся число можно представить в виде десятичной дроби без периода, то выводим в виде десятичной. Если нет (например, 8/9=8,8(8)) - в виде обыкновенной.-
-
-
30 December 2020
- Ответ оставил: igorShap
Привожу 2 варианта решения.
Вариант 1: файл 1.cpp
Решение основано на обыкновенном вычислении периода дроби (для дробей, имеющих конечную десятичную запись(например, 1/2=0,5), период вычисляется для формы с нулем в периоде(то есть для 1/2 берется форма 0,5(0))) с помощью деления столбиком.
Замечание: сам алгоритм деления в столбик я писал достаточно давно, и для других программ, поэтому его реализация в данном коде может быть неоптимальной (в плане памяти или кол-ва операций), однако он работает.
Вариант 2: файл 3.cpp
Если немного углубиться в математику, можно найти теорему, по которой дробь, представленная в виде m/n , где НОД(m, n) = 1, имеет конечную десятичную запись тогда и только тогда, когда ее знаменатель [tex]n = 5^{a_1}*2^{a_2}; a_1, a_2\in Z, a_1, a_2\geq0[/tex]. Тогда достаточно сократить числитель и знаменатель на общие множители, а далее выполнить проверку знаменателя.
-
-
- НЕ НАШЛИ ОТВЕТ?
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (22.08.2026) наш сайт содержит 109576 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос. -
Нажимая на кнопку "Ответить на вопрос", я даю согласие на обработку персональных данных
Ответить на вопрос
