Cách dùng hàm lũy thừa trong C để tính toán

Trong bài này, IoTZone sẽ hướng dẫn bạn cách dùng hàm lũy thừa trong C một cách chi tiết. Có nhiều hàm khác nhau để chúng ta sử dụng, cùng mình tìm hiểu về từng hàm nhé!

Dùng hàm pow để tính lũy thừa trong C

Hàm pow nằm trong thư viện math.h, chúng có tham số như sau: pow(a,n). Trong đó, a là cơ số còn n là bậc lũy thừa (hay còn gọi là số mũ).

Ví dụ, chúng ta có thể dùng pow làm hàm lũy thừa trong C như sau:

#include <stdio.h>
#include <math.h>
 
int main()
{
    int a, n;
    printf("Nhập số a: ");
    scanf("%d", &a);
     
    printf("Nhập số mũ n: ");
    scanf("%d", &n);
 
    float kq = pow(a,n);
     
    printf("Kết quả là %d^%d la: %f", a, n, kq);
}

Hàm pow() hoạt động bằng cách sử dụng một thuật toán lặp. Thuật toán này bắt đầu với giá trị cơ số và nhân nó với chính nó nhiều lần cho đến khi số mũ đạt đến 0. Ví dụ, để tính 2^3, thuật toán sẽ thực hiện các bước sau:

  1. Khởi tạo x = 2
  2. Nhân x với chính nó
  3. Giảm số mũ đi 1
  4. Lặp lại bước 2 cho đến khi số mũ bằng 0

Sau khi chạy dòng code trên, màn hình sẽ hiển thị dòng text để chúng ta nhập cơ số a và số mũ n. Sau khi nhập xong thì màn hình sẽ hiển thị kết quả sau khi tính toán lũy thừa.

Nhìn chung, pow là cách đơn giản nhất để chúng ta tính lũy thừa trong khi lập trình C. Chúng ta cũng có thể sử dụng hàm lũy thừa trong C này để tính lũy thừa cho các số thực.

>> Bài viết liên quan: Các lệnh trong C cơ bản kèm ví dụ, giải thích chi tiết

Dùng vòng lặp như một hàm lũy thừa trong C

Lũy thừa được hiểu đơn giản là phép tính nhân chính cơ số với chính nó với số lần bằng số bậc lũy thừa:

Dùng vòng lặp như một hàm lũy thừa trong C
Dùng vòng lặp như một hàm lũy thừa trong C

Do đó, chúng ta có thể sử dụng vòng lặp for để tính lũy thừa trong C, bên cạnh việc dùng hàm pow có sẵn trong thư viện math.h trên. Ý tưởng của phương pháp này là cho hệ thống vòng lặp chạy lặp lại từ 1 tới số bậc lũy thừa (mình đặt là b cho dễ), tại mỗi vòng lặp thì số a sẽ nhân với chính nó.

Dưới đây là đoạn code mẫu, bạn tham khảo 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 chương trình:

  • Tạo biến result để lưu kết quả sau khi chạy hàm lũy thừa trong C. Mình sử dụng kiểu dữ liệu long long vì kết quả trả về có thể sẽ rất lớn
  • Chạy vòng lặp for từ 1 cho đến số bậc lũy thừa b, với mỗi vòng lặp thì chúng ta nhân cơ số a với chính nó
  • Trả về kết quả trong biến result đã tạo

Nếu bậc lũy thừa b và cơ số a là các con số nhỏ, thì chúng ta có thể sử dụng phương pháp vòng lặp này. Tuy nhiên, nếu a và b quá lớn, chẳng hạn như 100^7, thì việc cho chương trình chạy vòng lặp như vậy sẽ mất khá nhiều thời gian và bộ nhớ. Khi đó, bạn có thể thử phương pháp bên dưới.

Dùng công thức truy hồi

Như ví dụ ở vòng lặp for trên, khi tính lũy thừa a^b thì chương trình phải lặp đi lặp lại b lần. Tuy nhiên, khi dùng công thức truy hồi như mình giới thiệu thì cchương trình chỉ cần lặp lại một nửa số lần của b thôi. Cụ thể công thức như sau:

Dùng công thức truy hồi tính hàm lũy thừa trong C
Dùng công thức truy hồi tính hàm lũy thừa trong C

Mình sẽ áp dụng công thức truy hồi trên vào cách viết chương trình trong C như sau:

int sqr(int x) {
    return x*x;
}
 
int pow(int a, int b) {
    if (b == 0) return 1;
    else
        if (b % 2 == 0)
            return sqr(pow(a, b/2));
        else
            return a * (sqr(pow(a, b/2)));
}

Sau khi chạy chương trình, bạn sẽ nhận được kết quả tương tự như các bước trên. Tuy nhiên, chương trình sẽ chạy ít lần hơn, đỡ phức tạp và tốn bộ nhớ hơn.

Ví dụ cách dùng hàm lũy thừa trong C

Giả sử mình cần tính kết quả lũy thừa 4^3, thì mình sẽ tạo 2 biến là a và b. Sau đó, gán giá trị a=4, b =3 và gọi hàm pow để tính lũy thừa 4^3 như bên dưới:

#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
  //Gán giá trị cho a và b
  double a = 4, b = 3, result;
  //Tính lũy thừa bằng hàm pow
    result = pow(a, b);
    //In kết quả ra màn hình
    cout << a << "^" << b << " = " << result;
}

Sau khi chạy xong, bạn sẽ nhận được kết quả là 64 trên màn hình.

Ứng dụng của hàm lũy thừa trong C

Hàm lũy thừa có thể được sử dụng trong nhiều ứng dụng khác nhau, bao gồm:

  • Toán học: Hàm lũy thừa trong C có thể được dùng để tính lũy thừa, chẳng hạn như giải phương trình, tính toán diện tích, thể tích, và các phép đo khác.
  • Kỹ thuật: Tính toán độ bền, độ cứng, và các thông số khác.
  • Khoa học: Tính toán số đếm nguyên tử, năng lượng bức xạ, và các hằng số vật lý khác.
  • Tài chính: Tính toán lãi suất, giá trị hiện tại, và các chỉ số tài chính khác.

Kết luận

Hàm lũy thừa trong C phổ biến hiện nay là hàm pow, cho phép chúng ta tính toán các phép lũy thừa một cách đơn giản. Bất cứ lập trình viên nào tìm hiểu về ngôn ngữ C cũng nên biết đến hàm tính lũy thùa cơ bản này.

IoTZone – Chuyên cung cấp thiết bị điện tử & tài liệu cho Makers

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *