zoukankan      html  css  js  c++  java
  • 逻辑分析题(三)

    1. 有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    这一题的话,我之前算法有错误,而不自知,所以需要反省下。

     1 var count =0;
     2      for(var i = 1;i< 5;i++){
     3          for(var j =1;j < 5;j++){
     4              for(var k =1;j< 5;j++){
     5                  if(i!=j&&i!=k&&j!=k)
     6                      console.log(''+ i+j+k);
     7                     count++;
     8              }
     9          }
    10          console.log(count);

    优化,可以减少循环的次数:

    2.输入三个整数 x,y,z ,请把这三个数由小到大输出。

     

     1  function sort(x,y,z){
     2         if(x > y){x^=y;y^=x;x^=y;}
     3            //如果x>y,就交换x和y的值;
     4         if(y > z){y^=z;z^=y;y^=z;}
     5            //如果y>z,就交换y和z的值;
     6         if(x > y){x^=y;y^=x;x^=y;}
     7            //如果x>y,就交换x和y的值;
     8         console.log(x,y,z);
     9        }
    10      sort(2,5,4);
    11      sort(13,11,9)

    这里用到了JS中的位操作符,还是比较犀利的。

    3.互换a,b的值

         1、加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失

    a = a + b;

    b = a - b;

    a = a - b;

        2、异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。

    a = a^b;

    b = a^b;

    a = a^b;

        3、乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题。而且乘除法比加减法要多一条约束:b必不为0。

    a = a * b

    b = a / b

    a = a / b

       4.

    var a=3,b=5;
    a = [b,b=a][0];

    4.输入某年某月某日,判断这一天是这一年的第几天?

     1 function getDays(year,month,date){
     2 var days = 0;//保存总天数;
     3 if(month >11)days+=30;
     4 if(month >10)days+=31;
     5 if(month >9)days+=30;
     6 if(month >8)days+=31;
     7 if(month >7)days+=31;
     8 if(month >6)days+=30;
     9 if(month >5)days+=31;
    10 if(month >4)days+=30;
    11 if(month >3)days+=31;
    12 if(month >2){
    13 if(year%4 ==0&&year%100!=0||year%400==0) {//闰年
    14 days+=29;
    15 } else{
    16 days +=28;//平年
    17 }
    18 }
    19 if(month >1)days+=31;
    20 return days + date;
    21 }
    22 console.log(getDays(2000,8,15))




  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/xuzhudong/p/6593996.html
Copyright © 2011-2022 走看看