3 ms·
let tokens = []; tokens.push("Fizz", "Buzz", "Fizzbuzz"); for (let i = 0; i <= 100; i++) { tokens.push(i); } function generateFizzBuzz(n) { if (n > 1
by jtolmar 8y ago
let tokens = [];
tokens.push("Fizz", "Buzz", "Fizzbuzz");
for (let i = 0; i <= 100; i++) { tokens.push(i); }
function generateFizzBuzz(n) {
if (n > 100) { return [[]]; }
let result = [];
for (let token of tokens) {
for (let tail of generateFizzBuzz(n+1)) {
tail.splice(0, 0, token);
result.push(tail);
}
}
return result;
}
let candidates = generateFizzBuzz(1);
while (candidates.length > 1) {
let candidateIndex = Math.floor(Math.random() * candidates.length);
let candidate = candidates[candidateIndex];
let checkIndex = Math.floor(Math.random() * 100);
let expected = checkIndex % 3 == 0
? (checkIndex % 5 == 0 ? "Fizzbuzz" : "Fizz")
: (checkIndex % 5 == 0 ? "Buzz" : checkIndex);
if (candidate[checkIndex] !== expected) {
candidates.splice(candidateIndex, 1);
}
}
return candidates[0];