0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 27
|
|
1 | |
Вывести на консоль бесконечную периодическую дробь с указанием периода11.03.2016, 17:30. Показов 8595. Ответов 8
Метки нет (Все метки)
Дана дробь. Например a - числитель, b - знаменатель. Как можно реализовать метод, возвращающий бесконечную периодическую дробь (с указанием периода), соответствующую данной обыкновенной дроби ? Т.е на консоль нужно вывести дробь типа 1.4(3)...
0
|
11.03.2016, 17:30 | |
Ответы с готовыми решениями:
8
Найти период разложения в бесконечную периодическую десятичную дробь Как определить бесконечную дробь? Отчет с указанием периода дат Найти периодическую и не периодическую части дроби |
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
|
|
11.03.2016, 21:59 | 2 |
Дели в столбик, и, когда начнется дробная часть, начинай проверять, не начали ли повторяться цифры. Если начали - началась периодическая часть дроби.
0
|
BrainOverflow
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
|
|
11.03.2016, 22:06 | 3 |
Juffin, так они могут так идти:
1,43333333333356, так что тут неизвестно сколько раз проверять нужно.
0
|
Вездепух
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
|
11.03.2016, 22:17 | 4 |
Следить надо не за повторением цифр в результате, а за повторением остатков от деления.
0
|
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
|
|
11.03.2016, 22:33 | 5 |
Да, действительно, неправильно сказал. Начинать искать повторения цифр нужно тогда, когда цифры числителя заканчиваются и начинаются нули после запятой (насколько я понимаю, числитель и знаменатель - целые числа).
0
|
Вездепух
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
||||||
12.03.2016, 02:08 | 6 | |||||
Сообщение было отмечено _fOrZe как решение
Решение
Например
Разумеется, в данной реализации можно заменить 'std::vector remainders' на какой-нибудь эффективный ассоцитивный массив ('std::map, 'std::unordered_map'), который будет проецировать величину остатка на номер итерации, на которой этот остаток был получен. Тогда поиск повторяющегося остатка будет более эффективным (если это кого-то волнует).
1
|
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 27
|
||||||
13.03.2016, 20:11 [ТС] | 7 | |||||
TheCalligrapher, А можно эту задачу решить проще? И в Вашем примере у меня везде ,где используется
0
|
Вездепух
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
||||||
13.03.2016, 20:20 | 8 | |||||
Сообщение было отмечено _fOrZe как решение
Решение
Нельзя. (Куда уж проще-то?)
Устаревший компилятор. VS 2010? Возьмите компилятор поновее. Или в VS 2010 сделайте во всех вызовах to_string приведение к типу unsigned long long
1
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
27.12.2016, 22:19 | 9 |
0
|
27.12.2016, 22:19 | |
27.12.2016, 22:19 | |
Помогаю со студенческими работами здесь
9
Вывод warning в консоль IDE с указанием откуда вызывалась функция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |