Bài toán: Viết chương trình tính tổng của dãy số sau : S(n) = 1 + 2 + 3 + … + n.
- Input
10
- Output
Tong cua day so la: 55
Bài viết này mình sẽ hướng dẫn các bạn cách tính tổng của dãy số S(n) = 1 + 2 + 3 + … +n bằng hai phương pháp đó là sử dụng đệ quy và vòng lặp.
Cách tính dãy số S(n) bằng phương pháp đệ quy.
Ý tưởng:
- Cách giải này cũng đơn giản: Để tính S(n) thì ta tính S(n-1) cộng với n.
- Các bạn dùng điều kiện neo là S(1) = 1
- Lưu ý: Điều kiện là n nhập vào phải lớn hơn hoặc bằng 1. Để xử lý cách nhập của n ta đơn giản dùng một vòng
do whileđể nhập dữ liệu. Nếu n ≤ 0 thì ta tiến hành nhập lại dữ liệu cho n.
Nào chúng ta cùng xem chương trình sau sử dụng đệ quy để tính tổng dãy số S(n)
#include<iostream>
using namespace std;
int sum(int n) {
if (n == 1) return 1;
return sum(n - 1) + n;
}
int main() {
int n;
do {
cout << "Nhap n: ";
cin >> n;
} while (n <= 0);
cout << "Tong cua day so la: " << sum(n)<<endl;
system("pause");
return 0;
}Sau khi chạy chương trình trên ta có kết quả sau:
Nhap n: 10 Tong cua day so la: 55
Cách tính dãy số S(n) bằng phương pháp lặp
- Đầu tiên ta khởi tạo giá trị một biến
sum = 0 - Ta dùng một vòng lặp chạy từ 1 đến n.
- Bên trong vòng lặp ta sẽ cộng giá trị của biến sum với i ( 1 ≤ i ≤ n )
- Sau khi chạy xong vòng lặp thì ta tiến hành trả về giá trị của biến sum.
Cùng xem chương trình sau tính tổng dãy số S(n) như sau
#include<iostream>
using namespace std;
int sum(int n) {
int sum = 0;
for (int i = 0; i <= n; i++)
sum += i;
return sum;
}
int main() {
int n;
do {
cout << "Nhap n: ";
cin >> n;
} while (n <= 0);
cout << "Tong cua day so la: " << sum(n)<<endl;
system("pause");
return 0;
}Sau khi chạy chương trình trên thì ta có kết quả sau
Nhap n: 20 Tong cua day so la: 210
Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !



Để lại một bình luận