• 逻辑分析题汇总(一)


    1.有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
     程序分析: 兔子的规律为数列: 1 1,2,3,5,8,13,21,34,表示了一种动植物数量的正常增长的数量变化

                                      月份: 1  2 3 4 5 6  7  8 9 10

    第一种方法:使用递归——但这种方法递归调用的效率非常低。

    1 function dd(n){
    2         if (n < 3) {return 1;}
    3         if(n >= 3){//这里注意n还有等于3的情况,不然会导致递归中断
    4             return (dd(n-1)+dd(n-2));
    5         }
    6     }
    7    console.log(dd(10));

    第二种方法:使用循环

    // f(n-2)+f(n-1) = f(n)
             //   1      1       2   n=3
             //   1      2       3   n=4
             //   2      3       5   n=5
             //   3      5       8   n=6
    
        function dd(n){
            var a =1,b=1,c=1;
            for(var i =3;i <= n;i++){
                a =b;
                b =c;
                c= a+b;
            }
            return c;
        }
       console.log(dd(6));
    

      

    这种方式更加巧妙。

    2.将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 。

    function fenjie(n){
             var arr=[];
             for(var i =2;i < n/2;i++){
                 while(n % i == 0){while循环在指定条件为true时,就一直执行;不满足的话,就跳出循环
                     arr.push(i);
                     n/=i;//此处不断的循环
                 }
             }
             return arr.join('*');
         }
         console.log('90 = ' + fenjie(90));
    

      

    3.要求输出国际象棋棋盘。

    在这里使用嵌套循环。

    //外层循环控制行
             for(var i = 0,str ='';i<8;i++){
                //内层循环控制列
                for(var j = 0;j< 8;j++){
                    //拼接一个正方形:如果r+c为偶数;就拼接空心方块,否则拼接实心方;
                    str += (i+j)%2 ==0?'□':'■';
                }
                str+='
    ';
            }
            console.log(str);
    

      实现效果:

    在这里我们比较了几种情况,需要分析下:

    输出情况:会输出每一次循环的值:

    修改代码后:

    输出

    修改代码:

    输出

    修改代码:

    输出

  • 相关阅读:
    struts2_文件上传和下载
    struts2_方法拦截器
    struts2_Action之间的重定向传参
    struts2_全局的拦截器,拦截用户非法登陆
    Hibernate入门心得
    struts2_异常页面处理
    设计师小法器:字体大管家
    IE6,IE7下设置body{overflow:hidden;}失效Bug【转】
    子层的margintop属性应用到父层上的解决方法
    jQuery CSS选择器nthchild
  • 原文地址:https://www.cnblogs.com/ydaimee/p/6749932.html
Copyright © 2020-2023  润新知