Skip to content

28702. FizzBuzz

Solutions

js
const testcases = [
  {
    input: `Fizz
Buzz
11`,
    output: `Fizz`,
  },
  {
    input: `980803
980804
FizzBuzz`,
    output: `980806`,
  },
  {
    input: `12
Fizz
Buzz`,
    output: `FizzBuzz`,
  },
  {
    input: `17
Fizz
19`,
    output: `Buzz`,
  },
];

function solution(input) {
  let result = 0;
  const splitedInput = input.trim().split('\n');

  splitedInput.forEach((str, idx) => {
    if (parseInt(str, 10) === Number(str)) {
      result = parseInt(str, 10) + 3 - idx;
    }
  });

  if (result % 3 === 0 && result % 5 === 0) {
    return 'FizzBuzz';
  } else if (result % 3 === 0) {
    return 'Fizz';
  } else if (result % 5 === 0) {
    return 'Buzz';
  }

  return result;
}

export default { solution, testcases };
js
const testcases = [
  {
    input: `Fizz
Buzz
11`,
    output: `Fizz`,
  },
  {
    input: `980803
980804
FizzBuzz`,
    output: `980806`,
  },
  {
    input: `12
Fizz
Buzz`,
    output: `FizzBuzz`,
  },
  {
    input: `17
Fizz
19`,
    output: `Buzz`,
  },
];

function solution(input) {
  let result = 0;
  const splitedInput = input.trim().split('\n');

  splitedInput.forEach((str, idx) => {
    if (parseInt(str, 10) === Number(str)) {
      result = parseInt(str, 10) + 3 - idx;
    }
  });

  if (result % 3 === 0 && result % 5 === 0) {
    return 'FizzBuzz';
  } else if (result % 3 === 0) {
    return 'Fizz';
  } else if (result % 5 === 0) {
    return 'Buzz';
  }

  return result;
}

module.exports = { solution, testcases };
ts
import type { Input, Output, Testcases } from 'bananass';

const testcases = [
  {
    input: `Fizz
Buzz
11`,
    output: `Fizz`,
  },
  {
    input: `980803
980804
FizzBuzz`,
    output: `980806`,
  },
  {
    input: `12
Fizz
Buzz`,
    output: `FizzBuzz`,
  },
  {
    input: `17
Fizz
19`,
    output: `Buzz`,
  },
] satisfies Testcases;

function solution(input: Input): Output {
  let result = 0;
  const splitedInput = input.trim().split('\n');

  splitedInput.forEach((str, idx) => {
    if (parseInt(str, 10) === Number(str)) {
      result = parseInt(str, 10) + 3 - idx;
    }
  });

  if (result % 3 === 0 && result % 5 === 0) {
    return 'FizzBuzz';
  } else if (result % 3 === 0) {
    return 'Fizz';
  } else if (result % 5 === 0) {
    return 'Buzz';
  }

  return result;
}

export default { solution, testcases };
ts
import type { Input, Output, Testcases } from 'bananass';

const testcases = [
  {
    input: `Fizz
Buzz
11`,
    output: `Fizz`,
  },
  {
    input: `980803
980804
FizzBuzz`,
    output: `980806`,
  },
  {
    input: `12
Fizz
Buzz`,
    output: `FizzBuzz`,
  },
  {
    input: `17
Fizz
19`,
    output: `Buzz`,
  },
] satisfies Testcases;

function solution(input: Input): Output {
  let result = 0;
  const splitedInput = input.trim().split('\n');

  splitedInput.forEach((str, idx) => {
    if (parseInt(str, 10) === Number(str)) {
      result = parseInt(str, 10) + 3 - idx;
    }
  });

  if (result % 3 === 0 && result % 5 === 0) {
    return 'FizzBuzz';
  } else if (result % 3 === 0) {
    return 'Fizz';
  } else if (result % 5 === 0) {
    return 'Buzz';
  }

  return result;
}

module.exports = { solution, testcases };

Explanation

It can be mathematically proven that among three consecutive strings, at least one of them corresponds to a number that is not 'Fizz', 'Buzz', or 'FizzBuzz'.

Therefore, we determine the next number based on that number, transform it according to the conditions, and output it.

Contributors