Categories: Tài liệu IT

7 Bài tập vòng lặp trong C++ từ căn bản đến nâng cao mê hoặc

Published by

Trong bài viết này, mình sẽ chia sẻ đến các bạn những bài tập về vòng lặp từ căn bản đến nâng cao mà mình đã tổng hợp, chọn lọc từ nhiều nguồn khác nhau. Nếu kiến thức về vòng lặp của bạn chưa vững, còn đang lơ mơ thì hãy tham khảo ngay bài viết này để hiểu 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 << "Nhập số tự nhiên n: ";
  cin >> n;

  for(int i = 1; i <= n; i++) {
    tong += i;
  }

  cout << "Tổng của " << n << " số tự nhiên đầu tiên là: " << tong << endl;
  return 0;
}

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 sử dụng vòng lặp.

Đáp án:

#include<iostream>
using namespace std;

int main() {
  int n;
  long gt = 1;

  cout << "Nhập số tự nhiên n: ";
  cin >> n;

  if (n == 0) {
    gt = 1;
  }
  else {
    for(int i = 1; i <= n; i++) {
      gt = gt * i;
    }
  }

  cout << "Giai thừa của " << n << " = " << gt << endl;
  return 0;
}

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>
using namespace std;

int main() {
  int n;

  do {
    cout << "Nhập n: ";
    cin >> n;
  } while (n != 0);

  cout << "Kết thúc chương trình!";
}

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>
using namespace std;

int main() {
  long long sotien;
  double lai;
  int sonam;

  cout << "Nhập số tiền gửi: ";
  cin >> sotien;
  cout << "Nhập lãi suất hàng năm: ";
  cin >> lai;
  cout << "Nhập số năm gửi tiền: ";
  cin >> sonam;

  for(int i = 1; i <= sonam; i++) {
    sotien += sotien * lai;
  }

  cout << "Số tiền sau " << sonam << " năm là : " << sotien;
}

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 << "Nhập một số bất kì: ";
  cin >> n;

  if (n < 2) {
    cout << "Không tồn tại số nguyên tố nào!" << endl;
  }
  else if (n == 2) {
    cout << "Danh sách các số nguyên tố từ 0 đến 2 là: 2 " << endl;
  }
  else if (n > 2) {
    cout << "Danh sách các số nguyên tố từ 0 đến " << n << " là: " << 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;
}

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 << "Nhập n: ";
  cin >> n;
  cout << n << " số Fibonacci đầu tiên là:" << endl;

  if (n > 0) {
    cout << 0 << " ";

    while(i < n) {
      cout << last << " ";
      sum = before + last;
      before = last;
      last = sum;
      i++;
    }
  }
  else if (n <= 0) {
    cout << "Không tồn tại dãy Fibonacci";
  }
  return 0;
}

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 << "Nhập chiều cao của tam giác: ";
  cin >> 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;
}

Hy vọng những bài tập này sẽ giúp các bạn trở nê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 hay và hữu ích thì hãy chia sẻ nó đến với bạn bè của mình để ủng hộ mình và giúp mình ngày càng phát triển hơn nhé! Chúc các bạn thành công!

This post was last modified on Tháng Năm 7, 2024 6:57 chiều

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

5 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

5 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

5 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

5 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

5 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

5 ngày ago