From 3cb2687bb3a294151ada2d6f32dab6f12821e980 Mon Sep 17 00:00:00 2001 From: AlessandroVerzella Date: Sat, 17 Aug 2024 12:54:26 +0200 Subject: [PATCH] Added the solution to the exercise and some comments --- .../js/index.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/projects/002-recursive-decimal-to-binary/js/index.js b/projects/002-recursive-decimal-to-binary/js/index.js index e69de29..8e04fcb 100644 --- a/projects/002-recursive-decimal-to-binary/js/index.js +++ b/projects/002-recursive-decimal-to-binary/js/index.js @@ -0,0 +1,24 @@ +const prompt = require('prompt-sync')(); + +/** + * + * @param {Number} userNumber - The non-negative decimal number to be converted to binary: + * @returns {String} - A string representing the binary equivalent of the supplied decimal number: + */ +const decimalToBinary = (userNumber) => { + return userNumber === 0 || userNumber === 1 + ? userNumber.toString() + : decimalToBinary(Math.trunc(userNumber / 2)) + + (userNumber % 2).toString(); +}; // For numbers greater than 1, it recursively calls the function by dividing by 2 and adds the remainder of the division by 2 to the end of the resulting string. + +const userNumber = Number(prompt('Enter a non-negative integer')); +if (userNumber < 0) { + console.log('Enter a non-negative integer'); +} else { + console.log( + `The binary equivalent of the non-negative decimal number entered by the user is: ${decimalToBinary( + userNumber + )}` + ); +}