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

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

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

 
 Ответить  Открыть новую тему 
> Мандарины. Остатки от делений.
Faradey
сообщение 13.01.2012 16:52
Сообщение #1





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

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


На праздник 8 марта ребята решили сделать подарки девушкам. Готовя подарки, они разложили в каждый подарок по открытке и по мягкой игрушке. А когда начали раскладывать мандарины, то возникло осложнение. Сначала они разложили мандарины по m штук в каждый пакет (в другие пакеты - яблоки), оказалось, что в одном из пакетов m - 1 мандарин, когда положили по m - 1 мандарин, осталось m - 2, попытались положить по m - 2 мандарин , осталось m - 3, и т.д., когда попытались положить по 2 мандарина, то остался 1 мандарин. Какую же количество мандарин закупили ребята?
program new;
uses crt;
var
m,n,i:integer;
begin
clrscr;
read(m);
for i:=1 to 1000 do begin
if (i mod m=m-1) and (i mod m-1=m-2) and ((i mod m-2)=m-3) and (i mod 2<>0) and (i>m) then begin
writeln(i); break; end;
end;

readkey;
end.


набросал что то, накажется набросал бред, может условие не так понял, буду благодарен за помощь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 14.01.2012 12:31
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

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


Если использовать перебор, то слишком короткое условие для проверки...

Я предлагаю другой подход.
Пойдём с малениких m.

m=3
Разложили по 2 - остаток 1.
Разложили по 3 - остаток 2.
Чему равно n?
Правильно - n=(НОК(2, 3)-1)=6-1=5.

m=4
n:=(НОК(2, 3, 4)-1)=12-1=11.

и т.д.

НОК - наименьшее общее кратное

Т.е. для нахождения n нужно найти НОК(1, 2, ..., m).

В статье по ссылке "ru.wikipedia.org/wiki/Наименьшее_общее_кратное" приводится два способа нахождения НОК. Можно выбрать первый - через НОД.

Сообщение отредактировано: Федосеев Павел - 14.01.2012 12:33
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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