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:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

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

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

Thuật toán tìm ước chung lớn nhất trong C / C++

Thuật toán tìm ước chung lớn nhất trong C / C++

Top