Algorytm matematyczny

0

Witam

Szukam pomysłu (lub pomocy) na algorytm, który liczy (najlepiej bez użycia pętli) kolejną liczbę dzielącą się przez daną liczbę. Ogólnie to powinno działać tak: funkcja dostaje dwa elementy: startową liczbę i dzielnik, i zwraca nam najbliższą liczbę od liczby startowej dzieląca się przez dzielnik. Tutaj przykład:
Funkcja(3, 5) : zwraca nam 5
Funkcja(15, 5) : zwraca nam 15
Funkcja(11, 5) : zwraca nam 15

Da się? I zna ktoś sposób?

0

ceil(11/5)*5 (zwykle dzielenie)
(s/5+(s%5)!=0)*5 (w C++)

0

Oj, coś nie działa

Int64 GetNextDivisor(Int64 StartBlock, Int32 x)
{
	/*if (StartBlock < x)
		return (Int64) x;
	else if (StartBlock % x == 0)
		return StartBlock;
	else*/
		return (StartBlock / x + (StartBlock % x) != 0) * x;
}
// ....
	std::cout << GetNextDivisor(3, 5) << std::endl;
	std::cout << GetNextDivisor(15, 5) << std::endl;
	std::cout << GetNextDivisor(11, 5) << std::endl;

I zwraca kolejno: 5, 5, 5

0

u mnie wystarczyło to: ((StartBlock % x) != 0) wziąc w nawias, ale możesz to rzutować na int

1 użytkowników online, w tym zalogowanych: 0, gości: 1