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.
Kết quả: Giả sử a = 2 và b = 3
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:
- 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.
- 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.
- 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():
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:
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ả:
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ả:
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ả:
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!!!