LATEST

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Trong bài viết này, codehow sẽ giới thiệu các bạn thuật toán kiểm tra số chẵn lẻ trong C / C++. Đây là một thuật toán căn bản giúp các bạn làm quen với việc lập trình, nên hãy luyện tập nó thật nhiều nếu các bạn mới bắt đầu nhé.

Đầu tiên chúng ta cần hiểu rõ như thế nào là số chẵn và số lẻ đã nhé.

Số chẵn là số tự nhiên chia hết cho 2 và số lẻ là số tự nhiên không chia hết cho 2.

Ví dụ: Ta có các số chẵn là {2, 4, 6, 8, ...} và các số lẻ là {1, 3, 5, 7,...}

Bây giờ làm thế nào để viết thuật toán kiểm tra số chẵn lẻ trong C / C++ thì các bạn hãy bắt đầu cùng mình thôi nhé.

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Dưới đây là thuật toán kiểm tra số chẵn lẻ trong C / C++, các bạn hãy xem nó trước rồi mình giải thích ngay bên dưới nhé.

if (n % 2 == 0){
        return true;
 }
else {
        return false;   
}

Giải thích thuật toán:

  1. Đầu tiên ta kiểm tra điều kiện nếu n % 2 == 0, nghĩa là n chia hết cho 2 thì kết luận đây là số chẵn.
  2. Ngược lại nếu n không chia hết cho hai thì đây là số lẻ.

Bây giờ mình sẽ thực hiện một chương trình kiểm tra số chẵn và số lẻ cho các bạn hình dung ra cách làm của nó nhé.

Ví dụ 1: Chương trình kiểm tra số chẵn lẻ bởi một số do người dùng nhập vào.

Chương trình C:

#include <stdio.h>

int main(void) {
    int a;
    printf("Nhập vào số cần kiểm tra: ");
    scanf("%d", &a);
    if(a % 2 == 0) printf("%d là số chẵn.",a);
    else printf("%d là số lẻ.",a);
  
    printf("\n-------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai6 02 PNG

Chương trình C++:

#include <cmath>
#include <iostream>
using namespace std;

int main() {
    int a;
    cout<<"Nhập vào số cần kiểm tra: ";
    cin>> a;
    if(a % 2 == 0) cout<<a<<" là số chẵn.";
    else cout<<a<<" là số lẻ.";
  
    cout<<"\n-------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai6 01 PNG

Ví dụ 2: Chương trình in các số chẵn lẻ trong mảng các phần tử được nhập bởi người dùng.

Chương trình C:

#include<stdio.h>
#include<math.h>
#include<stdbool.h>

//tạo hàm kiểm tra số chãn lẻ với 1 tham số được truyền vào
bool KTraChanLe(int n){
  //nếu n chia hết cho 2 thì đây là số chẵn
    if(n % 2 == 0){
        return true;
    }
      //ngược lại thì đây là số lẻ
    else return false;
}

void inSoChanLe(int a[], int n)
{
    // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm KTraChanLe() để kiểm tra phần tử đó
    printf("\nCác số chẵn trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if((KTraChanLe(a[i]) == true))
        {
            printf("%d ", a[i]);
        }
    }
    printf("\nCác số lẻ trong mảng là: ");
    for(int i = 0; i < n; i++)
    {
        if((KTraChanLe(a[i]) == false))
        {
            printf("%d ", a[i]);
        }
    }
}
int main()
{
    //khai báo biến i sử dụng cho vòng lặp for
    //biến count là số lượng phần tử trong mảng
    int i, count;
    //yêu cầu người dùng nhập vào số lượng cho phần tử
    printf("Nhập số lương phần tử trong mảng:");
    scanf("%d", &count);
    //gán số lượng người dùng vào kích thước của mảng
    int number[count];
    //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng
    printf("\nNhập giá trị cho từng phần tử trong mảng:\n");
    for (i = 0; i < count; ++i)
      scanf("%d", &number[i]);
    //Gọi hàm inSoChanLe() để in các số chẵn lẻ trong mảng ra màn hình
    inSoChanLe(number, count);
    
    printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Chương trình C++:

#include <iostream>
#include <math.h>
using namespace std;

//tạo hàm kiểm tra số chãn lẻ với 1 tham số được truyền vào
bool KTraChanLe(int n){
  //nếu n chia hết cho 2 thì đây là số chẵn
    if(n % 2 == 0){
        return true;
    }
      //ngược lại thì đây là số lẻ
    else return false;
}

void inSoChanLe(int a[], int n)
{
    // ta sử dụng vòng lặp for để duyệt từng phần tử trong mảng
  // cứ mỗi vòng lặp ta gọi hàm KTraChanLe() để kiểm tra phần tử đó
    cout<<"\nCác số chẵn trong mảng là: ";
    for(int i = 0; i < n; i++)
    {
        if((KTraChanLe(a[i]) == true))
        {
            cout<<a[i]<<" ";
        }
    }
    cout<<"\nCác số lẻ trong mảng là: ";
    for(int i = 0; i < n; i++)
    {
        if((KTraChanLe(a[i]) == false))
        {
            cout<<a[i]<<" ";
        }
    }
}

int main() {
  //khai báo biến i sử dụng cho vòng lặp for
  //biến count là số lượng phần tử trong mảng
  int i, count;
  //yêu cầu người dùng nhập vào số lượng cho phần tử
  cout << "Nhập số lương phần tử trong mảng:";
  cin >> count;
  //gán số lượng người dùng vào kích thước của mảng
  int number[count];
  //yêu cầu người dùng nhập vào giá trị cho từng phần t ử của mảng
  cout << "\nNhập giá trị cho từng phần tử trong mảng:\n";
  for (i = 0; i < count; ++i)
    cin >> number[i];
  //Gọi hàm inSoChanLe() để in các số chẵn lẻ trong mảng ra màn hình
    inSoChanLe(number, count);

  cout << "\n-----------------------------------\n";
  cout << "Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai6 03 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về thuật toán kiểm tra số chẵn lẻ trong C / C++. Các bạn hãy luyện tập thật nhiều các bài toán đơn giản thì khi đó mới có đủ kiến thức để thực hiện các bài toán phứ tạp. Chúc các bạn thành công !!!

Cùng chuyên mục:

Xóa node khỏi cây nhị phân tìm kiếm

Xóa node khỏi cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Tìm node Max và Min trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Xuất node con và node lá trong cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Tìm kiếm trên cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Duyệt cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Thêm node vào cây nhị phân tìm kiếm

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cây nhị phân (Binary tree) là gì? Cơ chế hoạt động của nó

Cách gộp hai danh sách liên kết đôi

Cách gộp hai danh sách liên kết đôi

Tìm kiếm phần tử trong DSLK đôi

Tìm kiếm phần tử trong DSLK đôi

Xóa node trong DSLK đôi

Xóa node trong DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Chèn node (Insert node) vào DSLK đôi

Duyệt danh sách liên kết đôi

Duyệt danh sách liên kết đôi

Tạo node mới trong DSLK đôi

Tạo node mới trong DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

DSLK đôi là gì? Cấu trúc dữ liệu của DSLK đôi

Quản lý sinh viên bằng DSLK đơn

Quản lý sinh viên bằng DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Tìm kiếm và sắp xếp trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Xóa node (Delete node) trong DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Chèn node (Insert node) vào DSLK đơn

Tạo node mới trong DSLK đơn

Tạo node mới trong DSLK đơn

Cấu trúc dữ liệu của DSLK đơn

Cấu trúc dữ liệu của DSLK đơn