DEV Community

kohki_takatama
kohki_takatama

Posted on • Edited on

TIL: How to Trim Trailing Zeros【CodeWars】

Overview 🔍

No zeros for heros

This question requires removing trailing zeros from a number while preserving its integrity.

Input and Output Examples:

1450 -> 145
960000 -> 96
1050 -> 105
-1050 -> -105
Enter fullscreen mode Exit fullscreen mode

Difficulty Level:

8kyu (easiest level on Codewars)

Solutions 💡

Solutions 1

function noBoringZeros(n) {
  while (n % 10 === 0 && n !== 0) {
    n = n / 10
  }
  return n
}
Enter fullscreen mode Exit fullscreen mode
  • Procedural programming approach using while loop.

Solutions 2

const noBoringZeros = n => n % 10 === 0 && n !== 0 ? noBoringZeros(n / 10) : n;
Enter fullscreen mode Exit fullscreen mode
  • Declarative programming approach using recursion.

Solutions 3

function noBoringZeros(n) {
  return +`${n}`.replace(/0*$/, "");
}
Enter fullscreen mode Exit fullscreen mode
  • Uses a regular expression to remove trailing zeros.
  • Converts the number to a string using template literals (${}), applies .replace(), and reconverts the result to a number using the + operator.

Solutions 4

[][(![]+[])[+!![]]+(!![]+[])[+[]]][([]+[][(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[][(![]+[])[+!![]]+(!![]+[])[+[]]])[+!![]+[+[]]]+([][[]]+[])[+!![]]+(![]+[])[!
![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+([][[]]+[])[+[]]+([]+[][(![]+[])[+!![]]+(!![]+[])[+[]]])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+!![]]+(!![]+[])[+[]]]
)[+!![]+[+[]]]+(!![]+[])[+!![]]]((!![]+[
Enter fullscreen mode Exit fullscreen mode

(here's an excerpt)

  • Overly complex solution. (but I like it.)

for more information, visit here

Discussion and Insights 💭

I prefer "Solution 3" because it's simple and reader-friendly while still demonstrating some useful techniques.

If you're curious about these solutions or want to explore more challenges, visit here.

Thank you for reading! 🙌

Top comments (0)