return Summe aller zahlen in einem Bereich
function sumAll(arr) {
var list = [];
for (var i = arr[0]; i <= arr[1]; i++) {
list.push(i);
}
var total = list.reduce(function(a, b) {
return a + b;
});
return total;
}
sumAll([10, 5]);
//sumAll([1, 4]); //returns 10
//sumAll([5, 10]); //returns 45
//sumAll([4, 1]);
Ich brauche die Summe jeder Reihe zwischen den angegebenen Argumenten. Für sumAll([1, 4])
und sumAll([5, 10])
. Der code wird passieren, weil es schafft alle zahlen zwischen den beiden Argumenten und hinzufügen. Jedoch, für sumAll([10, 5])
und sumAll([4, 1])
, weil die größere Anzahl ist das erste argument, ich glaube, es wird nicht ausgeführt, var Liste. Ich habe versucht, mit .sort()
Methode in zwischen so, dass die zahlen sortiert werden, aber kann nicht ankommen es zu wirken. Wie kann ich Math.min()
und Math.max()
für diesen code?
- Vergessen Sie nicht, pass
0
für den Akku zureduce
!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfachste Weg ist die Verwendung der mathematischen Formel
Hier wollen die Summe,
wo
m=arr[0]
undn=arr[1]
. Diese ist gleich der Differenzdie Substitution der obigen Formel doppelt gleich
Also der richtige code ist
Ursprüngliche Antwort (also nicht - Links für die Nachwelt):
Hier, wie ich benutzen würde
Math.min
undMath.max
um dies zu tun:Jemand anderes gepostet-code mit
arr[0] < arr[0] ? arr[0] : arr[1]
; IMO dieMath.min
undMath.max
Funktionen machen für besser lesbaren code als das ? :- operator.Auch, weitere zwei cents: ich glaube, es wäre einfacher nicht zu machen
var list
; stattdessen sagenvar total = 0
und erhöhen es. Wie diese:Dies ist eine jener Zeiten, in denen mathematische Gleichungen die in handliches kommen. Check out this code:
Ganz simple Logik, richtig? 🙂
JS:
Kann man das array an die
Math.min
undMath.max
Funktionen.JS:
Ausgabe:
.sort()
Sortieren Sie das array als string verwenden compareFunction zu Sortieren: Nummer Wert:wenn Sie möchten, verwenden Sie min oder max, übergeben Sie das array als Argumente:
1)
Math.max.apply(this, arr);
||Math.min.apply(this, arr);
2)
Math.max(arr[0], arr[1])
||Math.min(arr[0], arr[1])
Javascript-code:
HTML-CODE:
Dies ist ein Weg, es zu tun:
Ist, wie ich Rolle
Es ist eine Art:
https://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/
Aber nicht starten immer bei 1, sondern bei "rangeStart" und die numberOfDigits ist nicht immer rangeEnd, aber die Idee ist die gleiche.
Zwischen α und β ist, gibt es β−α+1 zahlen. Wir brauchen
Hinzufügen vertikal, wir haben
Daher
Diese "Umgekehrt und add" - Technik ist durch Gauss und kann verwendet werden, um die Summe aller arithmetischen progression als gut.
Was über diese? nach der Gauss-Formel:
JS:
Ich würde gehen Sie einfach:
Ich würde es vorziehen, Einfachheit....