DEV Community

kohki_takatama
kohki_takatama

Posted on • Edited on

TIL: How to Trim Trailing Zeros【CodeWars】

Overview 🔍

The challenge No zeros for heros which is 8kyu (easiest level), requires removing trailing zeros from a number while preserving its integrity.

Examples:

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

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)