Всем привет, подскажите как можно определить период дроби? Может быть функция какая есть?
Изменено:
Виктор Кузьмин - 07.02.2010 17:59:14
|
07.02.2010 17:57:09
Всем привет, подскажите как можно определить период дроби? Может быть функция какая есть?
Изменено:
Виктор Кузьмин - 07.02.2010 17:59:14
|
|
|
|
|
|
07.02.2010 18:04:16
А что такое период дроби? В принципе его, наверное, не сложно вычислить?
|
|
|
|
|
|
07.02.2010 18:06:51
Период - это повторяющаяся часть дроби. Например, для дроби 1/7 период будет 142857.
|
|
|
|
|
|
07.02.2010 18:16:15
Функции, скорее всего, нет, но можно определить примерно так. Сначала получить остаток от деления, потом записать все цифры в массив типа char и дальше сравнивать первую цифру с оставшимися, если совпадение есть тогда это и будет период, а если нет то сравнивать уже два числа сразу и т.д. пока не будет найдено совпадение.
|
|
|
|
|
|
07.02.2010 18:24:25
Алексей прав, только нужно не обработать весь массив, чтобы в случаи если дробь будет вида 0,555545554 результат был 5554, а не 5.
|
|
|
|
|
|
07.02.2010 18:30:31
Я тоже когда-то решал эту задачу. Такое решение это не лучший выход, потому что при большом периоде программа его очень долго определяет. Но другого решение мне найти не удалось.
|
|
|
|
|
|
07.02.2010 18:43:00
Вот вам исходник из моей программы
|
|||
|
|
|
|
07.02.2010 19:07:13
Спасибо, выручили. Только я не понял, зачем нужен вот этот код и кстати с ним у меня почему то не работает.
|
|||
|
|
|
|
07.02.2010 19:14:44
Да, этот код не нужен. Просто это вырезка из большого проекта.
|
|
|
|
|
|
16.10.2010 23:48:46
|
|||||
|
|
|
||||
Наши проекты: Turbo Pascal(tpdn.ru)
При поддержке кафедры Информационных Компьютерных Технологий РХТУ им. Д.И. Менделеева
© 2009–2012 Russian Pascal Development Network.
Техническая площадка: ISBIZ Хостинг