IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> M/n - нужно напечатать период дроби, Помогите решить задачу!
Fed
сообщение 12.10.2004 18:54
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Даны натуральные числа m и n. Напечатать период десятичной дроби m/n. Например, для дроби 1/7 периодом будет 142857, а если дробь конечная, то ее период состоит из одной цифры 0.

Люди, плиииз, помогите!!! Нужно срочно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
Fed
сообщение 12.10.2004 21:02
Сообщение #2





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Ребят, ну неужели ни кто не поможет? sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Amro
сообщение 13.10.2004 0:53
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  2  +


Напишу тебе саму идею, во-первых для наглядности попробуй поделить уголком 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)..........
Если не понятно, напиши, объясним!!!!

Сообщение отредактировано: Amro - 13.10.2004 1:08


--------------------
Закон иудеев: Семь раз отмерь, один отрежь.
Закон экономии: Семь раз отмерь, семь раз отрежь.
Закон программиста: Семь раз отрежь, ошибся, отмерь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"