Vì vậy, tôi đã đi vào một cuộc phỏng vấn việc làm và họ yêu cầu tôi viết lên một phương pháp điện toán nhanh chóng trên một bảng trắng và đây là những gì tôi đưa lên cóHiệu quả của phương pháp nguồn Java của tôi?
public static double pow(double base, double power) {
double result = 1.0;
for(double x = 0; x < power; x++) {
result = result * base;
}
return result;
}
này đã làm việc và họ đã hài lòng với nó, nhưng sau đó tiến hành hỏi tôi làm thế nào tôi có thể làm cho nó hiệu quả hơn và tôi không có phản ứng. Vì vậy, câu hỏi của tôi là, bạn có thể nhận được hiệu quả hơn này hay chỉ là một câu hỏi để làm cho tôi đổ mồ hôi một chút? Tôi nghĩ rằng có thể có một số giải pháp chuyển bit trực tiếp nhưng tôi không chắc chắn chính xác, tôi nghĩ rằng sẽ chỉ áp dụng cho quyền hạn của 2? Bất kỳ ý tưởng?
* EDIT Xin lỗi tôi quên nói rằng chữ ký phương thức đã được trao cho tôi (số đầu vào gấp đôi) và tôi được thông báo rằng tôi không thể sử dụng bất kỳ thư viện toán học tích hợp nào.
'kết quả * = cơ sở;' là điều đầu tiên nảy sinh trong đầu. – John3136
Bạn không chắc chắn, có thể có điều gì đó liên quan đến đệ quy hoặc lập trình động? –
@nickecarlo Đệ quy sẽ là công việc phụ tải cho việc này. – Smit