importance: 5
Viết hàm sumTo(n)
để tính tổng các số 1 + 2 + ... + n
.
Ví dụ:
sumTo(1) = 1
sumTo(2) = 2 + 1 = 3
sumTo(3) = 3 + 2 + 1 = 6
sumTo(4) = 4 + 3 + 2 + 1 = 10
...
sumTo(100) = 100 + 99 + ... + 2 + 1 = 5050
Thực hiện 3 biến thể giải pháp:
- Sử dụng vòng lặp for.
- Sử dụng đệ quy, gây ra
sumTo(n) = n + sumTo(n-1)
chon > 1
. - Sử dụng công thức cấp số cộng.
Một ví dụ về kết quả:
function sumTo(n) { /*... mã của bạn ... */ }
alert( sumTo(100) ); // 5050
Tái bút: Biến thể giải pháp nào là nhanh nhất? Chậm nhất? Tại sao?
Tái bút nữa: Chúng ta có thể sử dụng đệ quy để đếm sumTo(100000)
không?