Помощь - Поиск - Пользователи - Календарь
Полная версия: M/n - нужно напечатать период дроби
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Fed
Даны натуральные числа m и n. Напечатать период десятичной дроби m/n. Например, для дроби 1/7 периодом будет 142857, а если дробь конечная, то ее период состоит из одной цифры 0.

Люди, плиииз, помогите!!! Нужно срочно!
Fed
Ребят, ну неужели ни кто не поможет? sad.gif
Amro
Напишу тебе саму идею, во-первых для наглядности попробуй поделить уголком 1/7 и посмотри что у тебя получится, а получится у тебя то, что в конечном счёте какой-то из остатков будет равен 1, т.е числу m, которое мы делим на n(7).......таким образом твоя задача сводится к подсчёту кол-ва остатков, а это и будет длина периода!!!! а зная длину периода, думаю ты сам сможешь допетрить как его вывести?! Разьве не так?
В общем делаем типа того:
Код

var
c,m,k,n:integer
begin
c:=m; {запоминаем остаток, т.е число m}
m := (10 * m) mod n; {следующий остаток}
k:=1;
while m <> c do {далее топаем дальше, ищем пока остаток не повторится}
              begin
                   m := (10*m) mod n;
                   inc(k); {считаем остатки}
{а дальше думаю напишешь сам!!!}

Ещё один момент, в начале проги частное m/n надо запомнить!!!! а то как же период выводить то?!!!!! короче потом частное умножаешь на кол-во остатков и выводишь целую часть int(m/n*k)..........
Если не понятно, напиши, объясним!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.