AwesomeDevin / blog

Welcome to Devin's blog,I'm trying to be a fullstack developer and sticking with it !!!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

【算法系列 - LeetCode】Fizz Buzz 问题

AwesomeDevin opened this issue · comments

题目

给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:

  • 如果这个数被3整除,打印fizz
  • 如果这个数被5整除,打印buzz.
  • 如果这个数能同时被3和5整除,打印fizz buzz.
  • 如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身。

比如 n = 15, 返回一个字符串数组:

[
  "1", "2", "fizz",
  "4", "buzz", "fizz",
  "7", "8", "fizz",
  "buzz", "11", "fizz",
  "13", "14", "fizz buzz"
]

JS实现1

const fn = function (n) {
    let arr = []
   
    if(n%3 === 0 && n%5 === 0&&n!=0)
    {
    	arr.push('fizz buzz')
    }
    else if(n%3 === 0&&n!=0)
    {
        arr.push('fizz') 
    }
    else if(n%5 === 0&&n!=0)
    {
    	arr.push('buzz')
    }
    else if(n!=0){
    	arr.push(n.toString())
    }

    if(n>1)
    {
    	return  [...arr,...fn(n-1)]
    }
    return arr

}

JS实现2

const fizzBuzz = function(n){
	const arr = []
	for(var i =1;i<=n;i++)
	{
	    if(i%3 === 0 && i%5 === 0)
	    {
	    	arr.push('fizz buzz')
	    }
	    else if(i%3 === 0)
	    {
	        arr.push('fizz') 
	    }
	    else if(i%5 === 0)
	    {
	    	arr.push('buzz')
	    }
	    else{
	    	arr.push(i.toString())
	    }
	}
	return arr
}