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

Bạn đang xem: Cách tính lũy thừa nhanh

*


*

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

Đề bài: Cho nhị số nguyên a cùng b. Tính lũy vượt bậc b của a (a^b).


1. Thực hiện hàm pow

Đây là cách dễ dàng nhất nhằm tính lũy vượt bậc b của a. Trong thư viện cmath của C/C++ họ có hàm pow, cho phép 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à dễ dàng và sớm nhất để giải quyết và xử lý bài toán.

Xem thêm: Bảng Phép Cộng Trong Phạm Vi 10 Dành Cho Trẻ Với Cách Dễ Học, Dễ Nhớ

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

Trong trường phù hợp b = n là số nguyên dương, lũy thừa bậc n của a là tích của n thừa số bởi nhau.

Ngoài việc thực hiện hàm pow vào thư viện tất cả sẵn sinh sống C/C++, họ còn có 1 cách khá là quen thuộc với những người dân mới làm quen cùng với lập trình đó là sử dụng vòng for. Ý tưởng thực thi 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 bài toá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à các số nhỏ. đưa sử những giá trị nguồn vào vượt quá 10^8 thì chương trình chạy đang tốn tương đối nhiều thời gian và bộ nhớ, nên bọn họ sẽ gồm cách về tối ưu hơn. Độ phức hợp của thuật toán này lên tới O(n).

3. Thực hiện công thức truy tìm hồi

Đây là giải pháp tối ưu tốt nhất khi thực hiện tính lũy thừa mà lại không phải dùng tới hàm pow. Trả sử muốn tính x^n theo cách thường thì sẽ đề xuất dùng cho tới n bước, tuy nhiên khi thực hiện công thức tróc nã hồi thì sẻ giảm được 1 nửa. Ở đây chúng tá sẽ sử dụng công thức sau để xúc tiến bài toán.

Áp dụng công thức và xúc tiế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ư những cách trên nhưng độ phức tạp nhỏ dại hơn rất nhiều chỉ O(log2(b)).

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



Tìm những số chẵn lẻ bằng Queue với Stack

Để có tác dụng được bài bác này các bạn cần có kỹ năng về kết cấu Queue…



thiết lập hàng đợi Queue bằng mảng một chiều

họ sẽ cùng nhau tìm hiểu về cách thiết đặt hàng ngóng Queue bằng…



setup hàng ngóng Queue bởi danh sách links

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



Hàng đợi Queue là gì? cấu trúc dữ liệu và những cách cài đặt Queue

Trong gợi ý này mình vẫn giới thiệu các bạn một kết cấu lưu trữ…


bài xích tập kiểm tra số nguyên tố bởi Stack

chúng ta sẽ bên nhau tạo một cấu trúc Stack với list liên kết…


bài bác tập biến đổi cơ số bởi Stack

Trong hướng dẫn này mình sẽ thực hiện giải một bài toán đổi khác cơ…


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

bọn họ sẽ lần lượt thực hiện tạo những hàm cơ bản cho Stack như:…


thiết đặt Stack bởi danh sách link

bọn họ sẽ triển khai lần lượt các thao tác làm việc trong Stack áp dụng danh…


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

Trong gợi ý này mình đã giới thiệu chúng ta một cấu trúc lưu trữ…


Cây đỏ đen là gì? cấu tạo của Red-Black Tree

Trong gợi ý này mình vẫn giới thiệu chúng ta một kết cấu dữ liệu…


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

họ sẽ cùng nhau thực hiện xóa Node có một con, Node có 2…


tra cứu Node MAX và MIN trong cây nhị phân kiếm tìm kiếm

họ sẽ tiến hành một vài biện pháp tìm ra giá trị MAX và MIN…


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

Trong khuyên bảo này mình sẽ giới thiệu chúng ta cách xuất những Node con…


tra cứu kiếm Node bên trên cây nhị phân kiếm tìm kiếm

Trong giải đáp này mình vẫn giới thiệu các bạn cách tra cứu kiếm một Node…


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

Trong hướng dẫn này mình đang giới thiệu các bạn về kết cấu dữ liệu…


cấu trúc cây nhị phân là gì? hoạt động ra sao?

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


Gộp nhị danh sách links đôi

bọn họ sẽ cùng nhau khám phá về giải pháp nối hai list liên kết…