Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
// Но поскольку это зк, то усложним чуточку - если делится на степень 3, то столько раз Fizz, какая максимальная степень 3. Если на 5, аналогично. Если на 3 и на 5, то сначала все Fizz, которым не найден парный Buzz, потом все пары FizzBuzz, потом все Buzz, которым не найден парный Fizz.
function hardfizzbuzz(num) {
  function foo(n, c, i) {
    return n/i===((n/i)|0) ? foo(n/i, ++c, i) : c;
  }
  var fz = foo(num, 0, 3), bz = foo(num, 0, 5);
  var res = new Array(fz-bz>0?fz-bz+1:0).join('Fizz') +
            new Array(Math.min(fz,bz)+1).join('FizzBuzz') +
            new Array(bz-fz>0?bz-fz+1:0).join('Buzz');
  return res===''?num:res;
}
for (var i = 1; i < 301; i++) {
  console.log(hardfizzbuzz(i));
}
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers