icantech
Lập trình C++
3684
28/12/2023

5 dạng bài tập code mẫu C++ cơ bản (Full bài giải)

Sự phổ biến của ngôn ngữ C++ khiến ngôn ngữ này được ứng dụng rộng rãi trong lĩnh vực khác nhau. Trong bài viết dưới đây, hãy cùng ICANTECH tìm hiểu về 5 dạng code mẫu C++ cơ bản nhé!

1. 5 Dạng bài tập code mẫu C++

1.1. Dãy số Fibonacci n

Đề bài: Viết chương trình tính số Fibonacci thứ n

  • Sử dụng đệ quy hoặc vòng lặp để tính số Fibonacci thứ ,n.
    • Đối với đệ quy, sử dụng hàm tự gọi để tính n dựa trên (n−1) và (n−2).
    • Đối với vòng lặp, sử dụng hai biến tạm để tính toán và cập nhật chung cho mỗi bước lặp.

#include <iostream>

int fibonacci(int n) {

   if (n <= 1)

       return n;

   return fibonacci(n - 1) + fibonacci(n - 2);

}

int main() {

   int n;

   std::cout << "Nhap vao so n: ";

   std::cin >> n;

   std::cout << "So Fibonacci thu " << n << " la: " << fibonacci(n) << std::endl;

   return 0;

}

Kết quả:

Nhap vao so n: 7

So Fibonacci thu 7 la: 13

1.2. Kiểm tra số nguyên tố

Đề bài: Viết chương trình kiểm tra một số có phải là số nguyên tố hay không.

  • Một số n là số nguyên tố nếu chỉ có hai ước số là 1 và chính nó.
  • Sử dụng vòng lặp để kiểm tra từ 2 đến căn (n) (hoặc chỉ đến n/2) có số nào chia hết cho n hay không.

Code C++:

#include <iostream>

bool isPrime(int n) {

   if (n <= 1)

       return false;

   for (int i = 2; i * i <= n; ++i) {

       if (n % i == 0)

           return false;

   }

   return true;

}

int main() {

   int n;

   std::cout << "Nhap vao so n: ";

   std::cin >> n;

   if (isPrime(n))

       std::cout << n << " la so nguyen to." << std::endl;

   else

       std::cout << n << " khong phai la so nguyen to." << std::endl;

   return 0;

}

Kết quả:

Nhap vao so n: 17

17 la so nguyen to.

1.3. Tính giai thừa

Đề bài: Viết chương trình tính giai thừa của một số nguyên dương.

  • Giai thừa của n (ký hiệu n!) là tích của tất cả các số từ 1 đến n.
  • Sử dụng đệ quy để tính n! bằng cách sử dụng hàm đệ quy để tính  (n−1)! và nhân với n.

Code C++:

#include <iostream>

int factorial(int n) {

   if (n == 0)

       return 1;

   return n * factorial(n - 1);

}

int main() {

   int n;

   std::cout << "Nhap vao so n: ";

   std::cin >> n;

   std::cout << "Giai thua cua " << n << " la: " << factorial(n) << std::endl;

   return 0;

}

Kết quả:

Nhap vao so n: 5

Giai thua cua 5 la: 120

1.4. Chuyển đổi hệ cơ số

Đề bài: Viết chương trình chuyển đổi một số từ hệ cơ số 10 sang hệ cơ số khác (ví dụ hệ cơ số 2).

  • Để chuyển đổi một số từ hệ cơ số 10 sang một hệ cơ số khác, sử dụng phép chia lần lượt để lấy dư và ghép lại chuỗi dư đó.
  • Ví dụ: Đối với hệ cơ số 2, chia số cho 2 và lấy dư. Khi chuyển đổi từ dạng số sang dạng chuỗi, sẽ bắt đầu từ dư cuối cùng và lặp lại cho đến khi không còn dư nào.

#include <iostream>

#include <string>

std::string convertToBase(int n, int base) {

   std::string result = "";

   while (n > 0) {

       int remainder = n % base;

       result = std::to_string(remainder) + result;

       n /= base;

   }

   return result;

}

int main() {

   int n, base;

   std::cout << "Nhap vao so can chuyen: ";

   std::cin >> n;

   std::cout << "Nhap vao he co so can chuyen (2, 8, 16...): ";

   std::cin >> base;

   std::string convertedNumber = convertToBase(n, base);

   std::cout << "So " << n << " o he co so " << base << " la: " << convertedNumber << std::endl;

   return 0;

}

Kết quả:

Nhap vao so can chuyen: 15

Nhap vao he co so can chuyen (2, 8, 16...): 2

So 15 o he co so 2 la: 1111

1.5. Giải phương trình bậc hai

Lập trình giải phương trình ax2 + bx + c = 0, các hệ số thực a, b, c nhập từ bàn phím.

Để giải phương trình bậc hai ax2 + bx + c = 0 chúng ta có thể sử dụng công thức vi phân sau đây:

code-mau-c

Dưới đây là code C++ để giải phương trình bậc hai với các hệ số a,

b, c được nhập từ bàn phím:

#include <iostream>

#include <cmath>

int main() {

   double a, b, c, delta, root1, root2;

   // Nhập các hệ số từ bàn phím

   std::cout << "Nhap he so a: ";

   std::cin >> a;

   std::cout << "Nhap he so b: ";

   std::cin >> b;

   std::cout << "Nhap he so c: ";

   std::cin >> c;

   // Tính delta

   delta = b * b - 4 * a * c;

   // Kiểm tra giá trị của delta để xác định số nghiệm và tính toán nếu cần

   if (delta > 0) {

       root1 = (-b + std::sqrt(delta)) / (2 * a);

       root2 = (-b - std::sqrt(delta)) / (2 * a);

       std::cout << "Phuong trinh co hai nghiem phan biet:\n";

       std::cout << "x1 = " << root1 << "\n";

       std::cout << "x2 = " << root2 << "\n";

   }

   else if (delta == 0) {

       root1 = -b / (2 * a);

       std::cout << "Phuong trinh co nghiem kep:\n";

       std::cout << "x1 = x2 = " << root1 << "\n";

   }

   else {

       std::cout << "Phuong trinh vo nghiem!\n";

   }

   return 0;

}

Kết quả:

Nhap he so a: 2

Nhap he so b: -5

Nhap he so c: 2

Phuong trinh co hai nghiem phan biet:

x1 = 2

x2 = 0.5

2. Danh sách các bài tập code C++ cơ bản

  • Tính tổng hai số nguyên.
  • Tìm giá trị lớn nhất trong một mảng.
  • Tìm giá trị nhỏ nhất trong một mảng.
  • Đảo ngược một chuỗi ký tự.
  • Tính tổng các số chẵn từ 1 đến n.
  • Kiểm tra một chuỗi có phải là chuỗi đối xứng hay không.
  • Tính tổng các số nguyên tố trong một dãy số.
  • Đếm số lần xuất hiện của một ký tự trong chuỗi.
  • Tìm ước chung lớn nhất của hai số nguyên dương.
  • Tính diện tích và chu vi hình tròn.
  • Tính thức của một ma trận.
  • Kiểm tra một số có phải là số Amstrong hay không.
  • Tính lãi suất kép trong tài khoản tiết kiệm.
  • Sắp xếp một mảng số nguyên theo thứ tự tăng dần.
  • Kiểm tra một số có phải là số hoàn hảo hay không.
  • Tìm số Fibonacci thứ n.
  • Kiểm tra một mảng có phải là mảng tăng dần hay không.
  • Tìm ước số chung nhỏ nhất của hai số nguyên.
  • Chuyển đổi một số từ hệ cơ số 10 sang hệ cơ số khác.
  • Tìm nghiệm của phương trình bậc hai.
  • Sắp xếp một mảng số nguyên sử dụng thuật toán sắp xếp nhanh (QuickSort).
  • Tính tổng hai ma trận vuông.
  • Xác định xem một từ trong một câu có là một từ đảo ngược hay không (ví dụ: "hello" và "olleh").
  • Tìm đường đi ngắn nhất trong một đồ thị sử dụng thuật toán Dijkstra.
  • Kiểm tra xem một chuỗi có phải là chuỗi con của chuỗi khác hay không.
  • Tìm số dãy con liên tiếp trong mảng có tổng lớn nhất.
  • Sử dụng cây nhị phân để thực hiện việc tìm kiếm và xóa phần tử.
  • Tính độ phức tạp của một thuật toán được đưa ra.
  • Tìm số Fibonacci thứ n sử dụng phương pháp ma trận.
  • Xác định xem hai chuỗi có phải là anagram của nhau hay không.
  • Tạo một lớp để thực hiện các phép toán với phân số (cộng, trừ, nhân, chia).
  • Tìm chuỗi con dài nhất không chứa ký tự trùng lặp.
  • Tính tổng các phần tử trong một danh sách liên kết đơn.
  • Tìm phần tử lặp lại đầu tiên trong mảng số nguyên.
  • Sử dụng thuật toán KMP để tìm chuỗi con trong chuỗi.
  • Xác định xem một số có phải là số bậc ba hay không.
  • Tìm ước số chung lớn nhất của một danh sách số nguyên.
  • Sử dụng thuật toán merge sort để sắp xếp một mảng.

3. Lời Kết

Như vậy, ICANTECH đã cùng bạn tìm hiểu về các dạng bài tập code mẫu C++ phổ biến. Hi vọng bài viết mẫu code C++ sẽ giúp bạn trau dồi thêm các kiến thức về C++. 

Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình online thì hãy tham khảo ngay các khóa học lập trình dưới đây tại ICANTECH nhé

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình C++

Bài tương tự