Algorytm matematyczny

Odpowiedz Nowy wątek
2011-09-26 19:43
Skoczek
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?

Pozostało 580 znaków

2011-09-26 19:48
0

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


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-09-26 19:53
Skoczek
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

Pozostało 580 znaków

2011-09-26 19:56
0

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


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-09-26 19:57

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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