Câu trả lời của Animal_magic là chính xác rằng bạn nên thêm các số từ nhỏ nhất đến lớn nhất, tuy nhiên tôi muốn đưa ra một ví dụ để cho thấy tại sao.
Giả sử chúng ta đang làm việc trong một định dạng dấu phẩy động cung cấp cho chúng ta 3 chữ số chính xác đáng kinh ngạc. Bây giờ chúng tôi muốn thêm mười số:
[1000, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Tất nhiên câu trả lời chính xác là 1009, nhưng chúng ta không thể có được điều đó ở định dạng 3 chữ số. Làm tròn đến 3 chữ số, câu trả lời chính xác nhất chúng tôi nhận được là 1010. Nếu chúng tôi thêm nhỏ nhất đến lớn nhất, trên mỗi vòng lặp, chúng tôi nhận được:
Loop Index s
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1009 -> 1010
Vì vậy, chúng tôi nhận được câu trả lời chính xác nhất có thể cho định dạng của chúng tôi. Bây giờ hãy giả sử rằng chúng ta thêm từ lớn nhất đến nhỏ nhất.
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
Vì các số dấu phẩy động được làm tròn sau mỗi thao tác, tất cả các bổ sung được làm tròn đi, làm tăng lỗi của chúng tôi từ 1 đến 9 từ chính xác. Bây giờ hãy tưởng tượng nếu bộ số cần thêm của bạn có 1000, và sau đó là một trăm, hoặc một triệu. Lưu ý rằng để thực sự chính xác, bạn sẽ muốn tính tổng hai số nhỏ nhất, sau đó sử dụng kết quả vào tập hợp số của bạn.