乐趣区

百度IFE2018任务1718天

本文章用于记录百度前端技术学院的任务难点。

十进制转二进制。
核心思路:在 while 循环中,将十进制数字除以 2,同时将除以 2 的余数一次次记录下来,而每次除以 2 得到的整数商就是下次用来除以 2 的。直到整数商不够用来除以 2 了就停止。记录下来的余数的排列顺序是反的,最后反转一下就好。

代码:

function dec2bin(decNumber) {
    // 在这里实现你的转化方法,注意需要判断输入必须为一个非负整数
    if(decNumber < 0){console.log('请输入非负整数');
        return;
    }
    if(decNumber == ''){console.log('请输入内容');
        return;
    }
    var bin = parseInt(decNumber);
    var bin2 = '';

    while(bin>0){
        bin2 += bin%2;
        bin = Math.floor(bin/2);
    }
    // 反转字符串,要先转成数组,再反转,最后合并成字符串
    return bin2.split('').reverse().join('');
}

3 的小游戏,练习使用循环和条件语句,实现如下需求:
从 1 到 100,以此在 console 输出各数字,但是,当数字为 3 的倍数或者含有 3 的时候,输出“PA”
比如:1,2,PA,4,5,PA,……,11,PA,PA,14,PA……
思路:for 循环中分两步,第一步输出的数字为 3 的倍数,只要用条件 %3== 0 来判断就可以了,是则打印 ’PA’。第二步将这个数字转换成字符串,分割成数组,每一项都是数字的某一位上的数,再用 includes() 判断这个数组是否包含为 ’3’ 的元素即可,是则打印 ’PA’。

代码:

for(var i=1;i<=100;i++){if(i%3 == 0){console.log('PA');
        continue;
    }
    var n = i;
    //array.includes(searchElement[, fromIndex]) 判断一个数组是否包含一个指定的值,如果存在返回 true,否则返回 false
    if(n.toString().split('').includes('3')){console.log('PA');
        continue;
    }
    console.log(i);
}
退出移动版