Trong bài này bọn họ sẽ với mọi người trong nhà đi tìm gọi về thuật toán tính lũy thừa cấp tốc trong C/C++. Thông thường so với các câu hỏi tính lũy thừa bọn họ thường cần sử dụng hàm pow sẽ cách xử trí nhưng so với các việc lớn sẽ mất nhiều thời gian hơn để xử lý.

Bạn đang xem: Hàm lũy thừa trong c

*


*

Bài viết này sẽ chỉ dẫn các phương pháp để giải một câu hỏi tính lũy vượt một cách dễ dàng và đơn giản và công dụng nhất.

Đề bài: Cho nhị số nguyên a với b. Tính lũy thừa bậc b của a (a^b).


1. Sử dụng hàm pow

Đây là cách đơn giản dễ dàng nhất để tính lũy thừa bậc b của a. Trong thư viện cmath của C/C++ họ có hàm pow, chất nhận được tính lũy thừa.

Bài viết này được đăng tại


#include #include using namespace std;int main() { long long a, b, result; a = 5; b = 10000; result = pow(a, b); cout
Đây là cách đơn giản và sớm nhất để giải quyết bài toán.

2. áp dụng vòng lặp

Trong trường đúng theo b = n là số nguyên dương, lũy thừa bậc n của a là tích của n quá số bởi nhau.

Ngoài việc áp dụng hàm pow trong thư viện bao gồm sẵn ngơi nghỉ C/C++, chúng ta còn có một cách khá là thân thuộc với những người mới làm cho quen cùng với lập trình đó là thực hiện vòng for. Ý tưởng thực hiện thuật toán này là lặp từ là 1 tới b, với từng vòng lặp thực hiện nhân cùng với a.

Triển khai vấn đề với ngôn ngữ C/C++ như sau:


#include using namespace std;long long power(long long a, long long b) { long long result = 1; for(int i = 1; i
Thuật toán này hiệu quả với input đầu vào là những số nhỏ. Trả sử các giá trị nguồn vào vượt thừa 10^8 thì chương trình chạy sẽ tốn không hề ít thời gian và bộ nhớ, nên chúng ta sẽ bao gồm cách về tối ưu hơn. Độ tinh vi của thuật toán này lên đến mức O(n).

3. áp dụng công thức tróc nã hồi

Đây là cách tối ưu duy nhất khi triển khai tính lũy thừa cơ mà không yêu cầu dùng cho tới hàm pow. Mang sử mong tính x^n theo cách thông thường sẽ buộc phải dùng tới n bước, tuy nhiên khi áp dụng công thức tầm nã hồi thì sẻ giảm được 1 nửa. Ở đây bọn chúng tá sẽ thực hiện công thức sau để thực hiện bài toán.

Xem thêm: Cách Tính Số Số Hạng Của Dãy Số Cách Đều, Cách Tính Tổng Dãy Số: Dãy Số Cách Đều

Áp dụng phương pháp và thực hiện thuật toán họ sẽ gồm cách viết theo phong cách đệ quy 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)));
Kết quả tương tự như các cách trên nhưng độ phức tạp nhỏ tuổi hơn tương đối nhiều chỉ O(log2(b)).

Trên đây là phần giới thiệu cũng giống như triển khai của các thuật toán tính lũy vượt trong C/C++. Đây cũng là rất nhiều thuật toán tuyệt được sử dụng tương tự như rât hữu ích trong quá trình giải các bài toán search kiếm. Cực kỳ mong bài viết sẽ hữu ích cho bạn !



Tìm các số chẵn lẻ bằng Queue và Stack

Để làm được bài này chúng ta cần có kỹ năng về cấu tạo Queue…



thiết đặt hàng hóng Queue bởi mảng một chiều

họ sẽ thuộc nhau khám phá về cách thiết đặt hàng chờ Queue bằng…



setup hàng ngóng Queue bởi danh sách liên kết

họ sẽ cùng nhau khám phá về phương pháp khởi tạo kết cấu dữ liệu…



Hàng ngóng Queue là gì? cấu tạo dữ liệu và những cách thiết lập Queue

Trong khuyên bảo này mình vẫn giới thiệu chúng ta một cấu trúc lưu trữ…


bài xích tập bình chọn số nguyên tố bằng Stack

bọn họ sẽ cùng nhau tạo một kết cấu Stack với danh sách liên kết…


bài bác tập chuyển đổi cơ số bằng Stack

Trong khuyên bảo này mình sẽ tiến hành giải một bài xích toán chuyển đổi cơ…


cài đặt Stack bằng mảng một chiều

chúng ta sẽ lần lượt triển khai tạo những hàm cơ phiên bản cho Stack như:…


setup Stack bởi danh sách links

bọn họ sẽ thực hiện lần lượt các làm việc trong Stack áp dụng danh…


chống xếp Stack là gì? kết cấu và cơ chế vận động ra sao?

Trong chỉ dẫn này mình sẽ giới thiệu chúng ta một kết cấu lưu trữ…


Cây đỏ black là gì? kết cấu của Red-Black Tree

Trong trả lời này mình đang giới thiệu chúng ta một cấu trúc dữ liệu…


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

họ sẽ cùng nhau triển khai xóa Node có một con, Node bao gồm 2…


search Node MAX với MIN vào cây nhị phân tra cứu kiếm

chúng ta sẽ triển khai một vài cách tìm ra giá trị MAX cùng MIN…


Xuất Node nhỏ và lá vào cây nhị phân kiếm tìm kiếm

Trong lý giải này mình đang giới thiệu chúng ta cách xuất các Node con…


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

Trong lý giải này mình sẽ giới thiệu chúng ta cách tìm kiếm một Node…


Thêm Node vào cây nhị phân tra cứu kiếm

Trong giải đáp này mình đang giới thiệu chúng ta về cấu tạo dữ liệu…


cấu tạo cây nhị phân là gì? chuyển động ra sao?

Trong bài bác này mình đã giới thiệu các bạn một vào các cấu trúc dữ…


Gộp hai danh sách links đôi

bọn họ sẽ thuộc nhau tìm hiểu về bí quyết nối hai list liên kết…