拼多多、vipkid编程题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_41282726/article/details/100526269

1. 写个JavaScript函数来判断是否大于18岁,比如传入1993-6-3,返回true,传递2001-6-3返回false;

<script>
   /*分割时间字符串*/
   function dateFormat(date){
     var dateArr = date.split('-');
     return dateArr;
   }
   /*补0操作*/
   function zeroFormat(date){
     return date>10?date:'0'+date;
   }
   /*判断是否大于18*/
   function isYear(year){
     var currentDate = new Date();
     var flagDate = dateFormat(year);

     var currentYear = currentDate.getFullYear();
     var currentMon = zeroFormat(currentDate.getMonth()+1);
     var currentDay = zeroFormat(currentDate.getDate());

     var flagYear = flagDate[0];
     var flagMon = flagDate[1];
     var flagDay = flagDate[2];

     if(currentYear-flagYear>18){
        return true;
     }else if(currentYear-flagYear===18&&currentMon>flagMon){
        return true;
     }else if(currentYear-flagYear===18&&currentMon===flagMon&&currentDay>flagDay){
        return true;
     }else{
        return false;
     }
   }
console.log(isYear('2000-01-05'));
console.log(isYear('1999-02-14'));
console.log(isYear('1999-02-13'));
console.log(isYear('1989-12-26'));
</script>

2. 输入一个大于0的数,并求其二进制中1的个数;

1).用1和n进行位运算,结果为1, 则n的二进制最右边一位为1,否则为0;
2).将n二进制形式右移1位,继续与1进行位运算;
3).由于负数右移时最高位补1,因此不能采用算术右移,而使用不考虑符号位的逻辑右移。

<script>
   function numberOf(n){
     var count=0;
     while(n!=0){
       if((n&1)==1){
         count++;
       }
       n = n>>>1;
     }
     return count;
   }
</script>

3. 给定一个整数的数组,找出其中的pair(a,b),使得a+b=0, 并返回这样的pair数目,(a,b)和(b,a)是同一组。

如:输入[-1,2,4,5,-2],输出1

<script>
var arr = [-1, 2, 4, 5, -2,-2,2];
var count =0;
var newarr=[];
arr = Array.from(new Set(arr));
console.log(arr);
for(var i=0;i<arr.length;i++){
    newarr.push(Math.abs(arr[i]));

}
console.log(newarr);
for(var i=0;i<newarr.length-1;i++){
    for(var j=i+1;j<newarr.length;j++){
        if(newarr.indexOf(newarr[i])!=-1&&newarr[i]==newarr[j]){
            count++;
            break;
        }
    }
}
console.log(count);
</script>

猜你喜欢

转载自blog.csdn.net/weixin_41282726/article/details/100526269
今日推荐