![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
ICQ: 444663614
Регистрация: 19.03.2010
Сообщений: 9
|
![]()
Даны взаимно простые натуральные числа m и n (m>n). Найти переодическую и непереодическую части десятичной дроби равной m/n.
(Условия для написания программы: Очевидно, что различных остатков при делении на n не может быть больше, чем n (их значения лежат в интервале от n до n-1).Если даже все первые n остатков при делении m на n различны, то (n-1)-й остаток обязательно совподает с одним из уже полученных ранее, т.е. он находиться в переодической части. Поэтому для нахождения длинны периода L следует запомнить (n-1)-й остаток и генерировать остатки дальше, пока не будет получен совподающий с ним. Количество полученных при этом чисел и составляет длинну периода. Если известна длинна периода L, непериодическую часть можно найти следующим образом. Сначала получаютL-й остаток. Если он совподает с m, то непереодическая часть нулевая, в противном случае - сравнивают первый и (L+1)-й остаток, второй (L+2)-й и т.д., пока не найдеться совподающая пара. Количество сравнений до совпадений и являеться длинной непереодической части. Получаемые при этом делении цифры можно выдавать на печать.Следующие же за непереодической частью L цифр результата деления составят период. Если дробь являеться конечной, то в качестве периода будет напечатано число 0. ) Последний раз редактировалось Angel-dm; 27.04.2010 в 19:15. Причина: Некоректный заголовок |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать программу на Паскале!!! Для Профессионалов!))) | Angel-dm | Помощь студентам | 4 | 27.04.2010 20:20 |
Нужно написать программу в паскале. | Nicer Dicer | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 21.04.2010 02:32 |