Bài 13.1. Lũy Thừa Của Những Con Số - [Độ khó: Dễ]
Bài 13.1. Lũy Thừa Của Những Con Số - [Độ khó: Dễ]
Trong thế giới ảo của "Kẻ Tạo Phép Thuật", một phép thuật cường hóa được định nghĩa bởi công thức x^n. Tuy nhiên, để tránh năng lượng bị tràn ngập vũ trụ, kết quả của phép thuật phải được tính theo một modulo nhất định, thường là 10^9 + 7. Bạn được giao nhiệm vụ xây dựng một hệ thống tính toán phép thuật này một cách hiệu quả nhất, đặc biệt khi n có thể rất lớn. Hãy sử dụng kỹ thuật đệ quy để tính x^n một cách nhanh chóng.
INPUT FORMAT
Dòng duy nhất chứa hai số nguyên x và n.
- 1 <= x <= 10^9
- 0 <= n <= 10^5
OUTPUT FORMAT
Một số nguyên duy nhất là giá trị của (x^n) % (10^9 + 7).
Ví dụ:
Input:
2 10Output:
1024Giải thích:
- 2^10 = 1024.- 1024 % (10^9 + 7) = 1024.
- Để tính x^nbằng đệ quy nhanh, ta có thể dùng công thức:- Nếu n = 0,x^0 = 1.
- Nếu nchẵn,x^n = (x^(n/2))^2.
- Nếu nlẻ,x^n = x * (x^(n/2))^2.
 
- Nếu 
- Ví dụ với x=2, n=10:- pow(2, 10):- nchẵn. return- pow(2, 5) * pow(2, 5)
- pow(2, 5):- nlẻ. return- 2 * pow(2, 2) * pow(2, 2)
- pow(2, 2):- nchẵn. return- pow(2, 1) * pow(2, 1)
- pow(2, 1):- nlẻ. return- 2 * pow(2, 0) * pow(2, 0)
- pow(2, 0):- nbằng 0. return- 1
 
- Kết hợp lại các kết quả từ dưới lên sẽ cho ra 1024.
 
    
Comments