JavaScript两道例题

1、有一个卡车司机肇事后想逃跑,但是被三个人看见其车牌号码,但是没有看全。一号说:车牌的前两位是一样的,二号说:车牌的后两位是一 样的,但是与前两位不一样,三号说:车牌是一个数字的平方,请计算车辆号牌是多少。(车辆号牌是4位数)

刚开始我的思路是这样的:

  1:      <script>
  2:          //1、设置一个x 代表前两位
  3:          let x;
  4:          //2、设置一个y 代表后两位
  5:          let y;
  6:          //3、第三个数是一个自然数的平方 自然数为num(1-10000)
  7:          let num;
  8:          for (let x = 0; x < 10; x++) {
  9:             for (let y = 0; y < 10; y++) {
 10:                if (x == y) {
 11:                   continue;
 12:                }
 13:                for (let num = 0; num < 100; num++) {
 14:                   let s = x * 1000 + x * 100 + y * 10 + y;
 15:                   if (num * num == s) {
 16:                      console.log(s);
 17:                   }
 18:                }
 19:             }
 20:          }
 21:      </script>

经过优化后,变成了如下这样:

  1: <!-- 性能优化 -->
  2:       <script>
  3:          //1、设置一个x 代表前两位
  4:          let x;
  5:          //2、设置一个y 代表后两位
  6:          let y;
  7:          //3、第三个数是一个自然数的平方 自然数为num(1-10000)
  8:          let num;
  9:          outer: for (let x = 0; x < 10; x++) {
 10:             for (let y = 0; y < 10; y++) {
 11:                if (x == y) {
 12:                   continue; //终止当前循环
 13:                }
 14:                let s = x * 1000 + x * 100 + y * 10 + y;
 15:                for (let num = 0; num < 100; num++) {
 16:                   if (num * num == s) {
 17:                      console.log(s);
 18:                      break outer; //终止整个循环
 19:                   }
 20:                }
 21:             }
 22:          }
 23:       </script>

2、统计100~1000的水仙花数


 1: <script>
  2:    for( let i =100; i < 1000;i++){
  3:       let x = parseInt(i / 100) ;  //百位
  4:       let y = parseInt((i / 10) % 10); //十位
  5:       let z =parseInt(i % 10);  //个位
  6:       if(x * x * x + y * y * y + z * z * z == i){
  7:          document.write("水仙花数:"+i+ "<br>");
  8:          continue;
  9:       }
 10:    }
 11: </script>

纪念第一天。。。

posted @ 2020-03-05 15:36  齐木子  阅读(276)  评论(0编辑  收藏  举报