La risposta di animal_magic è corretta: dovresti aggiungere i numeri dal più piccolo al più grande, tuttavia voglio fare un esempio per mostrare il perché.
Supponiamo che stiamo lavorando in un formato a virgola mobile che ci dà una sconcertante 3 cifre di precisione. Ora vogliamo aggiungere dieci numeri:
[1000, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Ovviamente la risposta esatta è 1009, ma non possiamo ottenerla nel nostro formato a 3 cifre. Arrotondando a 3 cifre, la risposta più accurata che otteniamo è 1010. Se aggiungiamo il più piccolo al più grande, su ogni ciclo otteniamo:
Loop Index s
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1009 -> 1010
Quindi otteniamo la risposta più accurata possibile per il nostro formato. Ora supponiamo che aggiungiamo dal più grande al più piccolo.
Loop Index s
1 1000
2 1001 -> 1000
3 1001 -> 1000
4 1001 -> 1000
5 1001 -> 1000
6 1001 -> 1000
7 1001 -> 1000
8 1001 -> 1000
9 1001 -> 1000
10 1001 -> 1000
Poiché i numeri in virgola mobile vengono arrotondati dopo ogni operazione, tutte le aggiunte vengono arrotondate, aumentando il nostro errore da 1 a 9 dall'esatto. Ora immagina se il tuo set di numeri da aggiungere avesse un 1000, quindi un centinaio di 1 o un milione. Nota che per essere veramente accurati, dovresti sommare i due numeri più piccoli, quindi ricorrere al risultato nel tuo set di numeri.