2016-07-31 15 views
3

eine Anzahl n und einem Intervall Given (L: R), wie kann ich die ein Vielfaches von n innerhalb dieses Intervalls zählen?Multiples innerhalb des Intervalls

Wenn ich (R-L + 1)/n, es wird mir nicht richtige Antwort, cos zum Beispiel, innerhalb von 3 und 5 gibt es ein Vielfaches von 4, aber (5-3 + 1)/4 = 0, innerhalb von 4 und 8 gibt es 2 Vielfache von 4, aber (8-4 + 1)/4 = 1.

Ich habe das versucht, aber es funktioniert auch nicht (scheitern in 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; 
} 

der Punkt ist: ich will nicht tausend Dinge überprüfen, ich denke, es gibt einige schnelle Art und Weise, es zu tun.

+0

Sind L, n, R nicht negativ? –

+0

Angenommen L> = 0 - es ist intuitiv – xenteros

+0

Frage ist, wie viele Vielfache von n gibt es zwischen L und R, noth positive ganze Zahlen – Daniel

Antwort

0

Wäre das nicht

R/n - (L-1)/n 

Arbeit unter der Annahme Ganzahldivision hier? Da R/n ist die Anzahl der Vielfachen von n < = R, und (L-1)/n die Anzahl der Vielfachen von n < L, ist der Unterschied, was Sie wollen.

+1

@ downvoter - ein Gegenbeispiel wird sei nett. Vielen Dank! –

+0

Ich habe verstanden, was Sie meinen, und ich denke, es funktioniert :) – Daniel

+0

Könnten Sie Ihre Antwort trotzdem bearbeiten, so dass ich meine missdownvote in upvote ändern konnte? – xenteros

Verwandte Themen