added the condition to handle negative integers

This commit is contained in:
nikikalwar 2020-12-15 07:12:46 +05:30
parent 1b0e27ab86
commit 4eb570341d
2 changed files with 10 additions and 0 deletions

View File

@ -19,5 +19,8 @@ describe('fastPowering', () => {
expect(fastPowering(16, 16)).toBe(18446744073709552000); expect(fastPowering(16, 16)).toBe(18446744073709552000);
expect(fastPowering(7, 21)).toBe(558545864083284000); expect(fastPowering(7, 21)).toBe(558545864083284000);
expect(fastPowering(100, 9)).toBe(1000000000000000000); expect(fastPowering(100, 9)).toBe(1000000000000000000);
expect(fastPowering(5, -5)).toBe(0.0003200000000000002);
expect(fastPowering(-5, 5)).toBe(-3125);
expect(fastPowering(-5, -5)).toBe(-0.0003200000000000002);
}); });
}); });

View File

@ -14,6 +14,13 @@ export default function fastPowering(base, power) {
return 1; return 1;
} }
if(power<0){
power=power*-1;
base=1/base;
// console.log(base);
fastPowering(base,power);
}
if (power % 2 === 0) { if (power % 2 === 0) {
// If the power is even... // If the power is even...
// we may recursively redefine the result via twice smaller powers: // we may recursively redefine the result via twice smaller powers: