JS基础逻辑练习2—含答案

1、1~100所有数字的和

let num = 1;
let add = 0
while(num <= 100){
   add += num
   num++;
}
console.log(add); // 5050

2、计算阶乘

let num = 1;
let res = 1;
while(num <= 10){
   res *= num;
   num ++;
}
console.log(res); // 3628800

3、入职薪水10K,每年涨幅5%,50年后工资多少?

let money = 10000;
let count = 0;
while(count < 50){
   money *= 1.05;
   count++;
}
console.log(parseInt(money)); // 114673

4、打印100以内7的倍数 ( 循环内部值使用练习 )

let bei = 1;
while(bei <= 100){
   if(bei%7===0){
       console.log(`${bei}是7的倍数`); // 7、14、21、28、35、42、49、56、63、70、77、84、91、98
   }
   bei++
}

5、打印100以内的奇数 ( 循环步长控制练习 )

let num = 1
while(num <= 100){
    console.log(num);
    num += 2; 
}

6、求100-999之间的水仙花数

算法:abc = a ³ + b³ + c ³(使用穷举模型)

for(let i = 100; i <= 999; i++){
    let a = i%10;
    let b = parseInt(i/10)%10;
    let c = parseInt(i/100);
    if(i === a**3 + b**3 +c**3){
       console.log(i+"是水仙花数"); // 153、370、371、407
    }
}

7、假设某人有100,000现金,每经过一次路口需要进行一次交费,计算可以经过多少次路口

交费规则为:

  1. 当现金>50000时每次需要交5%
  2. 如果现金<=50000时每次交5000,请写程序计算此人可以经过多少次这个路口
let cash = 100000;
for(var count = 0; cash > 5000; count++){
     if(cash > 50000){
         cash *= 0.95;
     }else if(cash <= 50000){
         cash -= 5000;
     }
}
console.log(count); // 23次

8、假如投资的年利率为5%,从1000块增长到5000块,需要花费多少年

let now = 1000;
for(var count = 0; now < 5000; count++){ 
    now *= 1.05;
    if(now === 5000){
         break;
    }
}
console.log(count); // 33年

9、第一天给彩礼100元,第二天增加前一天的百分之10,连续给一个月的彩礼钱需要多少?

let num = 100;
for(let days = 1; days <= 30; days++){
   if(days === 1){ // 这里需要添加if判断,读题可知 => 第1天是100,往后每天增加前一天的10%,如果直接num *= 100,其初始值就产生了误区,自然得不到正确结果,所以需要判断是第几天,在计算等式
      num = 100;
   }else{
      num = 100 + num *1.1 
   }
}
console.log(num); // 16449.402268886435元

10、打印图形

图形示例:在这里插入图片描述

for(var a = 1; a <= 4; a++){
   for(var b = 1; b <= 4-a; b++){
       document.write("&nbsp;") // 这里得用半角空格,全角空格无法按照当前逻辑实现
   }
   for(var c = 1; c <= 2 * a - 1; c++){
       document.write("*")
   }
       document.write("<br>")
}

11、公鸡一只五块钱,母鸡一只三块钱,小鸡一块钱三只,有一百块钱想要买一百只鸡怎么买?

for(let a = 0; a <= 20; a++){
    for(let b = 0; b <= 33; b++){
       let c = 100 - (a+b)
       if(a*5 + b*3 + c/3 === 100){
          console.log(`${a}只公鸡,${b}只母鸡,${c}只小鸡,即可满足条件`);
       }
    }
}
// 买0只公鸡,25只母鸡,75只小鸡,即可满足条件
// 买4只公鸡,18只母鸡,78只小鸡,即可满足条件
// 买8只公鸡,11只母鸡,81只小鸡,即可满足条件
// 买12只公鸡,4只母鸡,84只小鸡,即可满足条件
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值