-
Notifications
You must be signed in to change notification settings - Fork 105
/
Balanced Number (Special Numbers Series #1 ).js
61 lines (44 loc) · 2.17 KB
/
Balanced Number (Special Numbers Series #1 ).js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
Description:
Definition
Balanced number is the number that The sum of all digits to the left of the middle digit(s) and the sum of all digits to the right of the middle digit(s) are equal.
Task
Given a number, Find if it is Balanced or not .
Warm-up (Highly recommended)
Playing With Numbers Series
Notes
If the number has an odd number of digits then there is only one middle digit, e.g. 92645 has middle digit 6; otherwise, there are two middle digits , e.g. 1301 has middle digits 3 and 0
The middle digit(s) should not be considered when determining whether a number is balanced or not, e.g 413023 is a balanced number because the left sum and right sum are both 5.
Number passed is always Positive .
Return the result as String
Input >> Output Examples
1- balancedNum (7) ==> return "Balanced" .
Explanation:
Since , The sum of all digits to the left of the middle digit (0)
and the sum of all digits to the right of the middle digit (0) are equal , then It's Balanced
2- balancedNum (295591) ==> return "Not Balanced" .
Explanation:
Since , The sum of all digits to the left of the middle digits (11)
and the sum of all digits to the right of the middle digits (10) are equal , then It's Not Balanced
Note : The middle digit(s) are 55 .
3- balancedNum (959) ==> return "Balanced" .
Explanation:
Since , The sum of all digits to the left of the middle digits (9)
and the sum of all digits to the right of the middle digits (9) are equal , then It's Balanced
Note : The middle digit is 5 .
4- balancedNum (27102983) ==> return "Not Balanced" .
Explanation:
Since , The sum of all digits to the left of the middle digits (10)
and the sum of all digits to the right of the middle digits (20) are equal , then It's Not Balanced
Note : The middle digit(s) are 02 .
*/
function balancedNum(number)
{ const n = number.toString()
const length=Math.round(n.length/2)
const reduce = (arg) => arg.split('').reduce((a,b)=>a+parseFloat(b),0)
if (n.length<3) return "Balanced"
if (n.length%2==0) return reduce((n.slice(0,length-1)))===reduce((n.slice(length+1)))
?"Balanced":"Not Balanced";
return eval(n.slice(0,length-1)+'==='
+n.slice(length))?"Balanced":"Not Balanced";
}