Herausforderung :
Zählen Sie die Anzahl der Einsen 1
in der binären Darstellung aller Zahlen zwischen einem Bereich.
Eingabe:
Zwei nicht dezimale positive ganze Zahlen
Ausgabe :
Die Summe aller 1
s im Bereich zwischen den beiden Zahlen.
Beispiel
4 , 7 ---> 8
4 = 100 (adds one) = 1
5 = 101 (adds two) = 3
6 = 110 (adds two) = 5
7 = 111 (adds three) = 8
10 , 20 ---> 27
100 , 200 ---> 419
1 , 3 ---> 4
1 , 2 ---> 2
1000, 2000 ---> 5938
Ich habe nur das erste Beispiel erklärt, sonst hätte es sehr viel Platz in Anspruch genommen, wenn ich versucht hätte, es für alle zu erklären.
Hinweis :
- Zahlen können um mehr als 1000 voneinander entfernt sein
- Alle Eingaben sind gültig.
- Die minimale Ausgabe wird eins sein.
- Sie können number als Array von zwei Elementen akzeptieren.
- Sie können wählen, wie die Nummern bestellt werden.
Gewinnkriterien:
Dies ist Code-Golf, so dass der kürzeste Code in Bytes für jede Sprache gewinnt.
IntRange
in Kotlin, Range
in Ruby)?
1000 - 2000
ergibt 5938, aber den Fall von 1000 senken, ist das Ergebnis fällt auch durch 1000: 0-1000 = 4938
. Beweis