2016-04-23 9 views
1

Ich habe ein Array, wo ich die Anzahl der Zahlen, die ich will, könnte es 5, könnte 100 Zahlen sein, und ich habe eine Methode, die den Unterschied berechnet zwischen zwei Zahlen.bekomme die Summe zwischen dem Unterschied der Zahlen in einem Array in JAVA

Was ich entwickeln möchte, ist eine Methode, die an das Array geht und mit der getDifference Methode berechnet die Differenz zwischen der 1. und 2. Nummer, die 2. Nummer und die 3. Nummer, die 3. Nummer und die Nummer 4 und so weiter bis zum Ende des Arrays und gibt dann die Summe aller Differenzen zurück. Irgendwelche Ideen?

Ich weiß, diese Methode ist falsch, es ist nur meine Sichtweise zu machen.

+1

Ich verstehe nicht, warum Sie eine Methode namens getDiference haben (die falsch geschrieben ist), wenn Sie einfach den '-'-Operator verwenden können, um die Differenz von zwei Zahlen zu erhalten, ohne die Ineffizienz des Aufrufs einer Methode. – hexafraction

Antwort

7

Der richtige Ansatz, IMHO, ist die Verwendung von Grundrechenarten, um dieses Problem zu reduzieren. Für eine Reihe der Größe N, würden Sie berechnen:

S = (a[1] - a[2]) + (a[2] - a[3]) + ... + (a[N-1] - a[N]) 

Also, wenn Sie die Klammern und reduzieren das Problem öffnen, würden Sie erhalten:

S = a[1] - a[N] 

dies in Java Darstellen sollte leicht genug:

public int getSumDiference(int[] numbers){ 
    return numbers[0] - numbers[numbers.length - 1]; 
} 
6

Lets sagen, dass Ihre Liste 4 Werte: a, b, c, d.
So Unterschiede sind a - b, b - c, c - d.
Summe davon sind (a - b) + (b - c) + (c - d).
Das Entfernen der Klammer bringt Sie a - b + b - c + c - d.
Da -b + b nichts ist, erhalten wir a - d.

Ergebnis: Erster Wert minus letzter Wert.

Überspringen Sie einfach alle Zwischenberechnungen, sie sind eine Verschwendung von Zeit.

Verwandte Themen