Last active
April 18, 2021 10:48
-
-
Save techiepriyansh/ad6db92e43a802af2f0ae4dd266db13d to your computer and use it in GitHub Desktop.
InfiniteCalculator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script> | |
function multiply(a, b) { | |
if (a == "") { | |
a = "0"; | |
} | |
if (b == "") { | |
b = "0"; | |
} | |
let x = a.toString().split("").reverse(); | |
let y = b.toString().split("").reverse(); | |
let carry = 0; | |
let finalNumber = ""; | |
for (let i = 0; i < x.length; i++) { | |
let number = ""; | |
for (let j = 0; j < y.length; j++) { | |
let tempNumber = (Number.parseInt(x[i]) * Number.parseInt(y[j]) + carry).toString(); | |
if (tempNumber.length == 1) { | |
number = tempNumber + number; | |
carry = 0; | |
} else if (tempNumber.length == 2) { | |
number = tempNumber[1] + number; | |
carry = Number.parseInt(tempNumber[0]); | |
} | |
tempNumber = ""; | |
} | |
for (let p = 0; p < i; p++) { | |
number = number + "0"; | |
} | |
if (carry != 0) { | |
number = carry.toString() + number; | |
} | |
carry = 0; | |
finalNumber = add(number, finalNumber); | |
number = ""; | |
} | |
return finalNumber; | |
} | |
function add(a, b) { | |
if (a == "") { | |
a = "0"; | |
} | |
if (b == "") { | |
b = "0"; | |
} | |
let x = a.toString().split("").reverse(); | |
let y = b.toString().split("").reverse(); | |
if (x.length <= y.length) { | |
for (let i = x.length; i < y.length; i++) { | |
x.push("0"); | |
} | |
} else if (x.length > y.length) { | |
for (let i = y.length; i < x.length; i++) { | |
y.push("0"); | |
} | |
} | |
let number = ""; | |
let carry = 0; | |
for (let i = 0; i < x.length; i++) { | |
let tempNumber = (Number.parseInt(x[i]) + Number.parseInt(y[i]) + carry).toString(); | |
if (tempNumber.length == 1) { | |
number = tempNumber + number; | |
carry = 0; | |
} else if (tempNumber.length == 2) { | |
number = tempNumber[1] + number; | |
carry = Number.parseInt(tempNumber[0]); | |
} | |
tempNumber = ""; | |
} | |
if (carry != 0) { | |
number = carry.toString() + number; | |
} | |
return number; | |
} | |
function power(x, n) { | |
if (x == "") { | |
x = "0"; | |
} | |
if (n == "") { | |
n = "0"; | |
} | |
let number = "1"; | |
for (let i = 1; i <= Number.parseInt(n); i++) { | |
number = multiply(x, number); | |
} | |
return number; | |
} | |
let a = prompt("x"); | |
let b = prompt("n"); | |
alert(power(a, b)); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment