mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-18 06:20:58 +00:00
28c1e74c1d
Replace the exercise pages' Python-only snippets with source-backed implementations for the 13 visible programming languages, and localize reader-facing comments by site language. Zig remains out of scope. Approval bypass: repository protection requires one approval but does not enforce it for administrators. All 68 completed checks succeeded; four non-required Java jobs remained queued on the existing ubuntu-20.04 workflow, with no failed checks.
22 lines
450 B
JavaScript
22 lines
450 B
JavaScript
/**
|
|
* File: fast_power.js
|
|
* Created Time: 2026-08-18
|
|
* Author: Hello Algo Team
|
|
*/
|
|
|
|
/* Exponentiation by squaring */
|
|
function fastPow(x, n) {
|
|
if (n === 0) {
|
|
return 1;
|
|
}
|
|
const half = fastPow(x, Math.floor(n / 2));
|
|
if (n % 2 === 0) {
|
|
return half * half;
|
|
}
|
|
return half * half * x;
|
|
}
|
|
|
|
if (fastPow(7, 0) !== 1 || fastPow(3, 5) !== 243 || fastPow(2, 6) !== 64) {
|
|
throw new Error('fast power check failed');
|
|
}
|