7 bài tập vòng lặp trong C++ từ cơ bản đến nâng cao cực hay (có đáp án)
Trong bài viết này, Isinhvien sẽ chia sẻ đến các bạn những bài tập về vòng lặp từ cơ bản đến nâng cao mà Isinhvien đã tổng hợp, chọn lọc từ nhiều nguồn khác nhau. Nếu như kiến thức về vòng lặp của các bạn chưa vững, còn đang lan man thì hãy tham khảo ngay bài viết Tất tần tật về vòng lặp để rõ hơn về chúng và bắt đầu thử sức với những bài tập dưới đây nhé!
1. Tính tổng của n số tự nhiên đầu tiên
Đề bài: Cho số tự nhiên n nhập từ bàn phím, hãy viết chương trình in ra tổng của n số tự nhiên đầu tiên sử dụng vòng lặp.
Đáp án:
#include <iostream> using namespace std; int main() { int n; long tong = 0; cout << "Nhap so tu nhien n: "; cin >> n; for(int i = 1; i <= n; i++) { tong += i; } cout << "Tong cua " << n << " so tu nhien dau tien la: " << tong << endl; return 0; }
Kết quả thực thi:
Nhap so tu nhien n: 10 Tong cua 10 so tu nhien dau tien la: 55
2. Tính giai thừa của một số tự nhiên
Đề bài: Cho một số tự nhiên n nhập từ bàn phím, viết chương trình in ra màn hình giai thừa của số vừa nhập có sử dụng vòng lặp.
Đáp án:
#include <iostream> using namespace std; int main() { int n; long gt = 1; cout << "Nhap so tu nhien n: "; cin >> n; if (n==0) gt=1; else for(int i = 1; i <= n; i++) { gt = gt * i; } cout << "Giai thua cua " << n << " = " << gt << endl; return 0; }
Kết quả thực thi:
Nhap so tu nhien n: 15 Giai thua cua 15 = 2004310016
3. Nhập số vào màn hình cho đến khi nhập số 0 thì dừng
Đề bài: Nhập vào một số cho đến khi ta nhập số 0 thì dừng chương trình.
Đáp án:
#include<iostream> #include<math.h> using namespace std; int main() { int n; do { cout << "Nhap n: "; cin >> n; } while (n!=0); cout << "Ket thuc chuong trinh!"; }
Kết quả thực thi:
Nhap n: 7
Nhap n: 5
Nhap n: 2002
Nhap n: 0
Ket thuc chuong trinh!
4. Tính tiền gửi ngân hàng sau n tháng.
Đề bài: Nhập vào số tiền gửi ban đầu, tiền lãi mỗi năm và số năm gửi tiền hãy tính số tiền nhận được sau n năm (biết lãi tính theo hình thức lãi kép).
Đáp án:
#include<iostream> #include<math.h> using namespace std; int main() { long long sotien; double lai; int sonam; cout << "Nhap so tien gui: "; cin >> sotien; cout << "Nhap lai suat hang nam: "; cin >> lai; cout << "Nhap so nam gui tien: "; cin >> sonam; for(int i=1; i<=sonam; i++){ sotien+=sotien*lai; } cout << "So tien sau " << sonam << " nam la :" << sotien; }
Kết quả thực thi:
Nhap so tien gui: 50000000000 Nhap lai suat hang nam: 0.03 Nhap so nam gui tien: 10 So tien sau 10 nam la :67195818958
5. In ra các số nguyên tố nhỏ hơn n
Đề bài: Nhập vào một số tự nhiên n bất kì, in ra màn hình các số nguyên tố nhỏ hơn n theo thứ tự tăng dần (sử dụng vòng lặp)
Đáp án:
#include<iostream> #include<math.h> using namespace std; int main() { int n; cout<<"Nhap mot so bat ky: "; cin>>n; if (n<2) { cout<<"Khong ton tai bat ky so nguyen to nao!" << endl; } else if (n==2) { cout<<"Danh sach cac so nguyen to tu 0 den 2 la: 2 " << endl; } else if (n>2) { cout<<"Danh sach cac so nguyen to tu 0 den " << n << " la: " << endl; cout<<2<<endl; cout<<3<<endl; for (int i=5; i<=n; i++) for (int j=2; j*j<=i; j++) { if (i % j == 0) break; else if (j+1 > sqrt(i)) { cout << i << endl; } } } return 0; }
Kết quả thực thi:
Danh sach cac so nguyen to tu 0 den 50 la: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
6. In ra n phần tử đầu tiên của dãy fibonacci
Đề bài: Nhập vào một số tự nhiên n, in ra màn hình n phần tử đầu tiên của dãy fibonacci (sử dụng vòng lặp).
Đáp án:
#include<iostream> #include<conio.h> using namespace std; int main() { int n; long last=1,before=0,sum=0; int i=1; cout<<"Nhap n: "; cin>>n; cout << n << " so fibonacci dau tien la:" << endl; if (n>0) { cout << 0 << " "; while(i < n) { cout<<last <<" "; sum=before+last; before=last; last=sum; i++; } return 0; } else if (n<=0) cout<<"Khong ton tai day Fibonacci"; }
Kết quả thực thi:
Nhap n: 10
10 so fibonacci dau tien la:
0 1 1 2 3 5 8 13 21 34
7. In ra màn hình tam giác cân rỗng
Đề bài: Nhập vào một số tự nhiên n, in ra màn hình tam giác cân rỗng có chiều cao là n được tạo thành từ những dấu *, có sử dụng vòng lặp.
Đáp án:
#include <iostream> using namespace std; int main() { int i,j,n; cout <<"Nhap chieu cao cua tam giac: "; cin >> n; --n; for (i=0; i<n; i++) { for (j=0; j<2*n+1; j++) { if (j==n-i || j==n+i) { cout <<" * "; } else { cout <<" "; } } cout << endl; } for (j=0; j<2*n+1; j++) { cout <<" * "; } return 0; }
Kết quả thực thi:
Nhap chieu cao cua tam giac: 5 * * * * * * * * * * * * * * *
Hy vọng những bài tập này sẽ giúp các bạn thành thạo hơn về sử dụng vòng lặp trong C++! Nếu thấy bài viết này của Isinhvien hay và bổ ích thì hãy chia sẻ nó đến với bạn bè của mình để ủng hộ cho Isinhvien và giúp Isinhvien ngày càng phát triển hơn nhé! Chúc các bạn thành công!