zoukankan      html  css  js  c++  java
  • 每周一题:Fizz Buzz(更新JS)

    题目:

    写一个程序,输出从 1 到 n 数字的字符串表示。

    1. 如果 n 是3的倍数,输出“Fizz”;

    2. 如果 n 是5的倍数,输出“Buzz”;

    3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

    示例:

    n = 15,

    返回:
    ["1","2","Fizz","4","Buzz","Fizz","7","8","Fizz","Buzz","11","Fizz","13","14","FizzBuzz"]

    通过率:

    代码:

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

    思路:

    首先这道题目,我们只需要知道一个数字是不是3或者5的倍数即可,它只有四种可能,3的倍数,5的倍数,3和5共同的倍数,和不是3和5的倍数。所以我们可以在循环中写一个if else语句来分情况输出。在开头我们需要建立一个空数组,到时候将每一个数字的判定结果输入到数组内保存,等循环结束后就可以通过这个数组进行输出。

    第二步是写循环体,题 目中要求的数字范围是在1~n之间,所以我们循环的条件应该与n有关,注意在这里,设置变量初始值应为1而不是0,范围应该在[1,n+1]之间,所以当变量值达到n+1时就可结束循环了,而不会再进行一个轮回。接着我们在循环里写条件语句,原先设定的条件是判断变量除以3或者5所得到的结果是否为整数,但后来我发现这样设置判断条件会导致运算量过大,于是将其转换成了变量除以3或5后判断余数是否为0,再根据其所对应的结果,如Buzz,Fizz,FizzBuzz等分割情况,最后用push()方法将结果加入最开始建立好的空数组中。注意,当这个数不是3也不是5的倍数时,直接输出这个数字push到数组中去。

    最后循环结束,输出空数组即可。

  • 相关阅读:
    MTK手机默认音量大小调节工具
    问题:MTK手机软件开发平台中字串资源添加进去了,菜单也能用,但是菜单上的字符串显示不出来。
    GNU ARM汇编快速入门
    想成为嵌入式程序员应知道的0x10个基本问题
    学习MTK需要的环境,平台,资料
    BSP 概念解析
    作为程序员的苦恼
    浅谈程序员的职业规划
    入行三年回顾
    程序员谈“应用推广”
  • 原文地址:https://www.cnblogs.com/sayg-1207/p/13140838.html
Copyright © 2011-2022 走看看