-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathfindNb.js
More file actions
28 lines (26 loc) · 917 Bytes
/
findNb.js
File metadata and controls
28 lines (26 loc) · 917 Bytes
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
/**
* Description:
* Your task is to construct a building which will be a pile of n cubes. The cube at the bottom will have a volume of n^3, the cube above will have volume of (n-1)^3 and so on until the top which will have a volume of 1^3.
*
* You are given the total volume m of the building. Being given m can you find the number n of cubes you will have to build?
*
* The parameter of the function findNb (find_nb, find-nb, findNb) will be an integer m and you have to return the integer n such as n^3 + (n-1)^3 + ... + 1^3 = m if such a n exists or -1 if there is no such n.
*
* Examples:
*
* findNb(1071225) --> 45
* findNb(91716553919377) --> -1
*/
function findNb(m) {
let cacheSum = 0
for (n = 1; n < m; n++) {
cacheSum += Math.pow(n, 3)
if (cacheSum > m){
break;
}
if (cacheSum == m) {
return n
}
}
return (-1);
}