Rounders
Description
We want to turn the given integer into a number that has only one non-zero digit using a tail rounding approach. This means that at each step we take the last non 0 digit of the number and round it to 0 or to 10. If it’s less than 5 we round it to 0 if it’s larger than or equal to 5 we round it to 10 (rounding to 10 means increasing the next significant digit by 1). The process stops immediately once there is only one non-zero digit left.
Example
-
For
n = 15, the output should berounders(n) = 20; -
For
n = 1234, the output should berounders(n) = 1000.1234 -> 1230 -> 1200 -> 1000. -
For
n = 1445, the output should berounders(n) = 2000.1445 -> 1450 -> 1500 -> 2000.
Input/Output
-
[execution time limit] 4 seconds (js)
-
[input] integer n
A positive integer.
Guaranteed constraints:
1 \leq value \leq 10^8. -
[output] integer
- The rounded number.
[JavaScript (ES6)] Syntax Tips
1
2
3
4
5
6
// Prints help message to the console
// Returns a string
function helloWorld(name) {
console.log("This prints to the console when you Run Tests");
return "Hello, " + name;
}
Solution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function rounders(value) {
var l = Math.floor(Math.log10(value));
var m = 10;
for (i = 0; i < l; i++) {
var r = (10 * (value % m)) / m;
if (r < 5) {
value -= (m * r) / 10;
} else {
value += (m * (10 - r)) / 10;
}
m *= 10;
}
return value;
}