2016-07-31 2 views
3

Учитывая ряд п и некоторый интервал (L: R), как можно подсчитать кратные п в пределах этого интервала?Кратные в пределах интервала

Если я это сделаю (R-L + 1)/n, это не даст мне правильного ответа, например, в пределах 3 и 5, есть один кратный 4, но (5-3 + 1)/4 = 0, в пределах 4 и 8, есть 2 кратных 4, но (8-4 + 1)/4 = 1.

Я пробовал это, но он тоже не работает (сбой в div (4, 4,13) = 2)

int div(int n, int l, int r){ 
    let mod = n - l % n; 
    let first = mod == n? l : l + mod; 
    return first > r? 0 : (r-first+1)/n + 1; 
} 

точка: Я не хочу проверить тысячу вещей, я думаю, есть некоторые быстрый способ сделать это.

+0

Являются ли L, n, R неотрицательными? –

+0

Предположим, что L> = 0 - это интуитивно понятно – xenteros

+0

Вопрос в том, сколько кратных n существует между L и R, noth положительными целыми числами – Daniel

ответ

0

Не был бы

R/n - (L-1)/n 

работа предполагая целые подразделения здесь? Так как R/n - это число кратных n < = R и (L-1)/n число кратных значений n < L, разница в том, что вы хотите.

+1

@downvoter - пример счетчика будет будь красивой. Благодаря! –

+0

Я понял, что вы имеете в виду, и я думаю, что это работает :) – Daniel

+0

Не могли бы вы отредактировать свой ответ в любом случае, чтобы я мог изменить свой пропущенный промах в upvote? – xenteros

Смежные вопросы