LATEST

Thuật toán tính lũy thừa trong C / C++

Trong bài viết này, codehow sẽ giới thiệu đến các bạn thuật toán tính lũy thừa trong C / C++. Đây là một dạng bài toán thường gặp khi bắt đầu học ngôn ngữ lập trình.

Trước khi đi vào tìm hiểu thuật toán của nó, chúng ta hãy ôn lại một chút về kiến thức lũy thừa đã nhé.

Ví dụ: Cho hai số nguyên a và b, tính lũy thừa bậc b của a.

Lũy thừa bậc b của a = ab

Kết quả: Giả sử a = 2 và b = 3

ab = 23 = 8

Bây giờ, sẽ bắt đầu tìm hiểu về các thuật toán tính lũy thừa trong C / C++ và các ví dụ về nó thôi nào.

Thuật toán tính lũy thừa trong C / C++

Trong phần này, mình sẽ đưa ra các thuật toán tính lũy thừa trong C / C++ để các bạn có lựa chọn cho mình cách tốt nhất. Cụ thể mình có hai thuật toán để tính lũy thừa là sử dụng hàm pow() và sử dụng vòng lặp for.

Thuật toán tính lũy thừa sử dụng vòng lặp for

Dưới đây là thuật toán tính lũy thừa sử dụng vòng lặp for, các bạn hãy xem qua sau đó mình giải thích ngay bên dưới nhé.

long long power(long long a, long long b) {
    long long result = 1;
    for(int i = 1; i <= b; i++) {
        result *= a;
    }
    return result;
 }

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

  1. Khai báo biến result để lưu kết quả trả về của phép tính lũy thừa. Vì kết quả có thể rất lớn nên mình đã khai báo kiểu dữ liệu long long.
  2. Sử dụng vòng lặp for lặp từ 1 đến số lũy thừa b. Cứ mỗi lần như vậy ta lấy kết quả nhân thêm với cơ số a.
  3. Kết quả trả về là biến result.

Thuật toán tính lũy thừa sử dụng hàm pow()

Ngoài cách sử dụng vòng lặp for, trong C và C++ cung cấp cho chúng ta hàm pow() để tính lũy thừa. Bây giờ chúng ta không cần e ngại việc số lũy thừa quá lớn làm chậm chương trình nữa.

Cú pháp hàm pow():

pow(a, b)

Trong đó: a là cơ số và b là số lũy thừa.

Ví dụ: Mình muốn tính 45 thì khi này ta viết như sau:

pow(4,5)

Bây giờ mình sẽ thực hiện một ví dụ nho nhỏ sử dụng hàm pow() để tính lũy thừa bằng chương trình C++ nhé:

#include <cmath>
#include <iostream>
using namespace std;
 
int main() {
    long long a, b, result;
    a = 5;
    b = 100;
    result = pow(a, b);
    cout << result << endl;
  
    cout<<"\n-------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai5 01 PNG

Ví dụ thuật toán tính lũy thừa trong C / C++

Dựa vào thuật toán tính lũy thừa trong C / C++, mình sẽ thực hiện một chương trình tính lũy thừa với cơ số và số lũy thừa do người dùng nhập. Mình sẽ thực hiện sử dụng cả hai thuật toán để các bạn có thể so sánh nhé.

Ví dụ 1: Tính lũy thừa với cơ số và số lũy thừa do người dùng nhập bằng vòng lặp for.

Chương trình C:

#include <stdio.h>

long long power(long long a, long long b) {
    long long result = 1;
    for(int i = 1; i <= b; i++) {
        result *= a;
    }
    return result;
 }

int main(void) {
    int a, b, result;
    printf("Nhập vào cơ số a: ");
    scanf("%5d", &a);
    printf("Nhập vào số lũy thừa b: ");
    scanf("%5d", &b);
  
    result = power(a, b);
    printf("Kết quả của phép tính là: ");
    printf("%5d ",result);
  
    printf("\n-------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Chương trình C++:

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

long long power(long long a, long long b) {
    long long result = 1;
    for(int i = 1; i <= b; i++) {
        result *= a;
    }
    return result;
 }

int main() {
    long long a, b, result;
    cout<<"Nhập vào cơ số a: ";
    cin>> a;
    cout<<"Nhập vào số lũy thừa b: ";
    cin>> b;
  
    result = power(a, b);
    cout<<"Kết quả của phép tính là: ";
    cout << result << endl;
  
    cout<<"\n-------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai5 02 PNG

Ví dụ 2: Tính lũy thừa với cơ số và số lũy thừa do người dùng nhập bằng hàm pow().

Chương trình C:

#include <stdio.h>

int main(void) {
    int a, b, result;
    printf("Nhập vào cơ số a: ");
    scanf("%5d", &a);
    printf("Nhập vào số lũy thừa b: ");
    scanf("%5d", &b);
  
    result = pow(a, b);
    printf("Kết quả của phép tính là: ");
    printf("%5d ",result);
  
    printf("\n-------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Chương trình C++:

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

int main() {
    long long a, b, result;
    cout<<"Nhập vào cơ số a: ";
    cin>> a;
    cout<<"Nhập vào số lũy thừa b: ";
    cin>> b;
  
    result = pow(a, b);
    cout<<"Kết quả của phép tính là: ";
    cout << result << endl;
  
    cout<<"\n-------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
}

Kết quả:

bai5 03 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về thuật toán tính lũy thừa trong C / C++. Các bạn hãy luyện tập thật nhiều để có thể sử dụng nó một cách thành thạo nhé. 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