js基础编程题(持续更新)

一、小明被不明势力劫持。后被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。

他决定在x星战打工。好心的老板答应包食宿,第1天给他1元钱。

并且,以后的每一天都比前一-天多2元钱,直到他有足够的钱买票。

请编程计算小明在第几天就能凑够108元,返回地球。

javascript比较熟悉,使用javascript,其实用什么语言都差不多昂

【题意】

 //  需要攒过  108元的船票

        //  第一天     1 元

        //  第二天     1+2

        //  第三天     1+2+2

        //  第三天     1+2+2+2

        //  请问第几天能够攒够108元(每天的钱加起来)

 【代码】

var m = 1;
        var sum = 0;
        for (let i = 1; sum < 108; i++) {
            if (i > 1) {
                m = m + 2;  //每天的钱多2元
            }

            sum = m + sum;  //每天的钱累加

            console.log("需要多少天:", i, "每天的钱:", m, "总共多少钱", sum)

            //  console.log(i)
            if (sum >= 108) {
                // console.log(i)
            }

        }

【分析】

if (i > 1) {

                m = m + 2;  //每天的钱多2元     //  注意这里  第一天不走+2  ,第一天就是1,不然的话,算出来的i 就是 10天就能攒够钱了,也就是第一天只有一块钱也算一天

            }

【结果】

质数练习:比如输入的数字为       求100 以内的质数的个数(除了1和本身都除不尽)

【代码】

 for (let i =2;i<=100;i++){

               for(let  j=2;j<=i;j++){
                      if( i%j==0 && i!=j ){  // 没有余数   除得尽  91   91 =0   91 1  =91  除其他的都!=0  
                      //  console.log(i); // 为什么放这里不行
                     break;  
                    } 
                    if(j==i){
                        console.log(i) ;
                    }
                     
                  
               }   //2     // i=3时    j=3                i=3时 j++  j=3没输出    i=4时 ,也没输出 j++ j=4 ,j=5时   
                 
               
        }

求两个正整数的最大公约数,最小公倍数:

    【代码】

 function max_gy(a, b) {


            while (true) {

                var yu = a % b;  // 余数等于  a%b       有余数的话一直除下去,

                if (yu == 0) {
                    return b;      //没有余数,返回    除数
                }

                a = b;
                b = yu;

            }

        }

        function min_gb(a, b) {
            return a * b / max_gy(a, b);    //   
        }




        var a = Number(prompt("请输入第一个值:"));
        var b = Number(prompt("请输入第二个值:"));
        document.write(a + "和" + b + "的最大公约数:" + max_gy(a, b));
        document.write("<br>");
        document.write(a + "和" + b + "的最小公倍数为:" + min_gb(a, b));

【分析】

         a= 20    b=15    

               公约数

         1......   20  /15     =1   .....5        a=b   a=15     b=5

         2......    15 /5=3     没有余数            b为最小公约即为5

           公倍数:

            20*15 /   5  = 300/5=60

        

  遍历二维数组  (遍历二维数组中的一维数组的元素)

ps:不是遍历单纯的遍历其中的一维数组,而是一维数组其中的元素

【代码】

var   a  =[[1,2],[3,4]];
     

        for(let  i=0;i<a.length;i++){   // 两个一维数组
              for( var j=0;j<a[i].length;j++){ //一维数组的长度
                   //  a[i].length ;   一维数组的长度
                   
                   document.write(a[i][j]);   //  为什么输出 1,2,3,4

              }
        }

【分析】 

  // 分析:   i =0时   j=0  j=1   arr[0][0]  arr[0][1]    1  2    

         //      i=1时     j=0  j=1    arr[1][0]   arr[1][2]  3    4


 

 打印图形:

【图案】 

【代码】

 for (let i = 0; i < 6; i++) {


            for (let m = 0; m < i + 1; m++) {     //先有空格,后有*
                document.write("&nbsp")
            }  //这样的话空格都打印在*的后面,因为 for执行完一轮,一行的*都打印完了




            for (let j = 0; j < 11 - 2 * i; j++) {
                document.write('*')
            }
            document.write("<br/>")


        }

      题目:  有  1, 2,3,4 个数字,能组成多少个互不相同的三位数      都是多少?   64个

      那么互不相同,并且三个数没有重复的元素,这样的三位数又又多少呢   24个

      

   【代码】

       第一问:

 var  count =0;
   for(let i=1;i<5;i++){
  //  console.log("i的值为:"+i);
        for(let j=1;j<5;j++){
           // console.log("j的值为:"+j);
            for(let k=1;k<5;k++){
                //console.log("k的值为"+k)
                    console.log(i+""+j+""+k);
                    count++;
            }
        }     
   }
   
   console.log("总共有多少个:"+count);

【分析】

1开头的有 16种,2,3,4开头各14种,总共64种。

第二问:

【代码】

var  count =-0;
   for(let i=1;i<5;i++){
  //  console.log("i的值为:"+i);
        for(let j=1;j<5;j++){
           // console.log("j的值为:"+j);
            for(let k=1;k<5;k++){
                //console.log("k的值为"+k)
                if(i!=j && i!=k && j!=k){
                    console.log(i+""+j+""+k);
                    count++;
                }
            }
        }     
   }

【分析】    最内层的for循环里面加上if()判断条件

 if(i!=j && i!=k && j!=k){ console.log(i+""+j+""+k);}

   第一位数不等于第二位数,第一位数不等于第三位数,第二位数不等于第三位数

123  124  132  134  142   143   无重复的数字,1开头的有6种,其他一样,总24种。

 

 

 

记录笔记

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值