Skip to content

Commit 4b7e1a6

Browse files
committed
Add sum of power of digits
1 parent 4f0dac7 commit 4b7e1a6

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

sum-of-power-digits/app.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
const numberInput = document.getElementById('numberInput');//number input
2+
const powerInput = document.getElementById('powerInput');//power input
3+
const result = document.getElementById('result');//result display
4+
const option = document.getElementById('option');//option selection
5+
let mode = option.value;
6+
function calculateSumOfDigits() {//calculate sum of digits
7+
const number = parseFloat(numberInput.value);//get number value from input
8+
const power = parseInt(powerInput.value, 10);//get power value from input
9+
if (isNaN(number)) {//if entered number is not a number
10+
result.textContent = 'Please enter a valid number.';
11+
}
12+
const sum = calculateSum(number);//calculate sum of entered number
13+
result.textContent = sum;//display result
14+
}
15+
function calculateSumOfAllDigits(number, power) {//calculate sum of all digits
16+
const numberString = number.toString().split('e')[0].replaceAll('.', '').replaceAll('-', '');//remove non digit characters to avoid errors
17+
let sum = 0;//initialize sum
18+
for (let i = 0; i < numberString.length; i++) {//repeat for each digit
19+
const digit = parseInt(numberString[i], 10);//convert string to integer
20+
sum += digit ** power;//get power of digit then add digit to sum
21+
}
22+
return sum;//return sum of all digits
23+
}
24+
25+
function calculateSumOfIntegerDigits(number, power) {//calculate sum of integer digits
26+
const integerString = parseInt(number, 10).toString().replaceAll('.', '').replaceAll('-', '');//remove non digit characters to avoid errors
27+
let sum = 0;//initialize sum
28+
for (let i = 0; i < integerString.length; i++) {//repeat for each digit
29+
const digit = parseInt(integerString[i], 10);//convert string to integer
30+
sum += digit ** power;//get power of digit then add digit to sum
31+
}
32+
return sum;//return sum of integer digits
33+
}
34+
35+
function calculateSum(number) {//calculate sum function
36+
if (mode === 'sumOfDigits') {//if mode is sum of digits
37+
return calculateSumOfAllDigits(number);//return sum of all digits
38+
} else if (mode === 'sumOfIntegerDigits') {//else if mode is sum of integer digits
39+
return calculateSumOfIntegerDigits(number);//return sum of integer digits
40+
}
41+
}

sum-of-power-digits/index.html

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>Sum of Power of Digits Calculator</title>
5+
</head>
6+
<body>
7+
<h1>Sum of Power of Digits Calculator</h1>
8+
<input type="number" id="numberInput">
9+
Power: <input type="number" step="1" id="powerInput">
10+
<select id="option"><!--mode to calculate sum-->
11+
<option value="sumOfDigits" selected>Sum of Digits</option>
12+
<option value="sumOfIntegerDigits">Sum of Integer Digits</option>
13+
</select>
14+
<button onclick="calculateSumOfDigits()">Calculate</button>
15+
Sum of Digits: <p id="result"><!--result display--></p>
16+
<script src="app.js"></script>
17+
</body>
18+
</html>

0 commit comments

Comments
 (0)