Skip to content

Instantly share code, notes, and snippets.

@pdulapalli
Created November 27, 2020 22:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pdulapalli/c91e5c2f6d6f2c22e90344eb081074ef to your computer and use it in GitHub Desktop.
Save pdulapalli/c91e5c2f6d6f2c22e90344eb081074ef to your computer and use it in GitHub Desktop.
FizzBuzz Sample Implementation
'use strict';
function parseNaturalNumber(number) {
const currentNumVal = Number.parseInt(number, 10);
if (!Number.isSafeInteger(currentNumVal) ||
currentNumVal < 1) {
return null;
}
return currentNumVal;
}
function fizzBuzzConverter(currentNum) {
const currentNumVal = parseNaturalNumber(currentNum);
if (!currentNumVal) {
return;
}
const isMultp3 = (currentNum % 3) === 0;
const isMultp5 = (currentNum % 5) === 0;
if (!isMultp3 &&
!isMultp5) {
return `${currentNum}`;
}
let outputStr = '';
if (isMultp3) {
outputStr += 'Fizz';
}
if (isMultp5) {
outputStr += 'Buzz';
}
return outputStr;
}
function processNumbers(limit) {
const maxNum = parseNaturalNumber(limit);
if (!maxNum) {
return;
}
for (let i = 1; i <= maxNum; i += 1) {
const outputStr = fizzBuzzConverter(i);
if (outputStr) {
console.log(outputStr);
}
}
}
module.exports = {
parseNaturalNumber,
fizzBuzzConverter,
processNumbers
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment