Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите пожалуйста как реализовать кратность? [D6, WinXP]


DimMih ©   (2005-06-23 17:43:00) 

Подскажите пожалуйста как реализовать кратность? Например у меня есть число 13. Мне нужно найти ближайшее к нему кратное пяти т.е. 15


evvcom   (2005-06-24 09:04:00) [1]


> Например у меня есть число 13. Мне нужно найти ближайшее к нему кратное пяти

Не хватает одного условия для решения задачи. А если у тебя есть число 15 и тебе надо найти "ближайшее к нему кратное" шести? Это будет какое число 12 или 18?


Юрий Зотов   (2005-06-23 18:02:00) [2]

> Amoeba ©   (23.06.05 17:48) [1]

N1 := 13 mod 5; // Получили N1=3
if N1 > 0 then  
N2 := 5 * (N1 div 5 + 1)   // Получили N2 = 5
else
N2 := N1;

И где ж тут 15?

> DimMih ©   (23.06.05 17:43)

Подсказка:
N1 := (13 div 5) * 5 // Число, кратное 5 и ближайшее к 13 снизу
N2 := N1 + 5 // Число, кратное 5 и ближайшее к 13 сверху

Осталось из двух чисел N1 и N2 выбрать одно - то, которое ближе к 13 по абсолюту. Это уж Вы сами.


-=XP=-   (2005-06-23 18:01:00) [3]

N1 := 13 mod 5;
if N1 > 0 then
N2 := 5 * (N1 div 5 + 1)


Что-то мне подсказывает, что (N1 mod N2) div N2 всегда даст 0.


-=XP=-   (2005-06-23 17:55:00) [4]

function RepetitionFactor(aNum, aRep: integer): integer;
begin
 Result := aRep * (aNum div aRep);
 if (aNum mod aRep > aRep/2) then Result := Result + aRep;
end;


DimMih   (2005-06-23 17:53:00) [5]

Спасибо за помощь


Amoeba   (2005-06-23 17:48:00) [6]

N1 := 13 mod 5;
if N1 > 0 then
 N2 := 5 * (N1 div 5 + 1)
else
 N2 := N1;


Наверх

Титульная страница Поиск, карта сайта Написать письмо