关于循环的一些基础习题

循环的一些知识点

1,while循环结构

 注意事项:

while 循环需要我们在循环外就将变量声名好,在执行代码的过程中,一定要让变量进行变化,否则这个循环就会无
休止的进行下去。
不会停止的循环叫做死循环,程序一直不会停止, cpu 占用率越来越高,很容易造成系统崩溃。所以我们在写代码的
时候一定避免写成死循环。

2,do while循环结构

3,for循环结构

 

1,输出一百以内7 的倍数或者个位数为7或者十位数为7的数

 // 条件:包含7或7的倍数
    // //     // 包含7的条件 
    // //     // 个位是7- 对10求余,余数是否是7


for (var a = 1; a <= 100; a++) {
      if (a % 7 == 0 || a % 10 == 7 || parseInt(a / 10) == 7) {
             console.log(a)
         }

  }

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

var money = 10000
     for(var a=1; a<=50; a++) {
         money = money + money * 0.05
     }
     console.log(money);

3.打印100–200之间所有能被3或者7整除的数

for(var a=100; a<=200; a++) {
      if(a%3 === 0 || a%7 === 0) {
          console.log(a);
      }
    }

4.求100-999之间的水仙花数。

 for(var a=100; a<1000; a++) {
        var bai = parseInt(a/100) //得到百位数
        var shi = parseInt(a/10)%10//得到十位数
        var ge = a%10   //得到个位数
        if(bai*bai*bai + shi*shi*shi + ge*ge*ge === a) {
            console.log(a);
        }
    }

5.求5的阶乘

var result = 1
    for(var a=5;a>=1;a--) {
        result = result * a
    }
    console.log(result);

*****6.打出九九乘法表

//双重for循环

  document.write('<pre>');
    for (var a = 1; a <= 9; a++) {
        for (var b = 1; b <= a; b++) {
            var result = a * b//得出两个数相乘的结果
            document.write(b + '*' + a + '=' + result + '   ');
        }
        document.write('<br>');
    }

7 在页面显示出1000-2000的所有闰年;并且每四位换行

 8.打印三角形

  // 打印正三角形核心思想:双重for循环,一个代表行,一个代表列
    document.write('<pre>')
    for (var a = 1; a <= 9; a++) { //代表行
        for (var b = 1; b <= a; b++) { //代表列
            document.write('*')
        }
        document.write('<br>')
    }

正倒三角形 

    document.write('<pre>')
    for (var a = 9; a >= 1; a--) {
        for (var b = 1; b <= a; b++) {
            document.write('*');
        }
        document.write('<br>');
    }

9.用循环计算下面的结果

    1 - 1/2 + 1/3 - 1/4 + ... - 1/100;

/*思路:var a=0;先定义一个存每一次得到的数
    第一次是a=a+1/1;
    第二次是a=a-1/2;
    第三次是a=a+1/3;
    第四次是a=a-1/4;
    奇数为加,偶数为减;
    */
    var a = 0; //定义一个变量存数据
    for (var sum = 1; sum <= 100; sum++) {
        if (sum % 2 == 0) {
            a = a - 1 / sum;
        } else {
            a = a + 1 / sum
        }
    }
    console.log(a)

10,求20以内所有数的阶乘和

 var sum = 0; //设置一个变量存所有阶乘后的数相加的值
    for (var a = 1; a <= 20; a++) { //循环一到20的数
        var result = 1; //
        for (var b = 1; b <= a; b++) {
            result = result * b;
        }
        sum = result + sum;
    }
    console.log(sum)

11,

有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,求棋盘上放的所有芝麻的重量,并输出每个格子放了几颗;

思路:

  /*

    1   1

    2   2

    3   4

    4   8

    5   16

    */

    // 最终需求求所有芝麻的重量,先求数量,先求每个方格中芝麻的数量

 // var num = 1 // 第一个方格中数量
    // var sum = 0
    // sum += num
    // for(var a=2; a<=64; a++) {
    //     num = num * 2
    //     console.log('第'+a+'个方格中芝麻数量为'+num);
    //     sum += num
    // }
    // console.log(sum * 0.00001);

    // var sum = 0
    // for(var a=1;a<=64;a++) {
    //     sum += Math.pow(2, a-1)
    // }
    // console.log(sum);

12.    某人在银行有50000元存款。银行每月都要收取服务费,存款大于5000元时每个月收取总额的5%,总额不大于5000元的时候不收服务费;假设这个人存了以后从来都不用,用循环计算银行要扣这个人的手续费能扣多少次?每次扣取后剩余多少钱?


    var money = 50000; //原本的钱
    var k = 0 //设置一个计数器
    while (money > 5000) {
        var kou = money * 0.05 //每一次扣的钱
        money = money - kou; //剩下的钱
        k++; //计数器
        console.log('第' + k + '次扣完剩下' + money + '钱')
    }
    console.log(k)

13.  猴子摘桃,猴子摘了x个桃,每天吃一半,再多吃一个,第7天吃的时候剩下一个了,猴子摘了多少桃子?

   /*
    7   num = 1
    6   num = num+1)*2 = 4
    5   num = num+1)*2 = 10
    4   num = num+1)*2 = 22
    3   46
    2   94
    ... 
    1   190
    */

var sum = 1
    for (var i = 7; i > 1; i--) {
        sum = (sum + 1) * 2
    }
    console.log(sum)

14.

11.有个皮球,每次落地弹起都是高度的一半,如果从10米高的地方丢下,第十次弹起时,皮球总过经历了多少距离。

解题思路:

 计算总共经历的距离,就需要计算每次弹起的高度 + 落下的高度

    h = 10

    1   10 + 10/2               h+h/2   h=h/2

    2   10/2 + 10/2/2           h+h/2   h=h/2

    3   10/2/2 + 10/2/2/2

    */

    // 初始高度
    var h = 10
    // 定义所有距离的容器
    var result = 0
    for(var a=1; a<=10; a++) {
        // 计算每次经历的距离
        var s = h + h/2
        // 为了下次还可以使用新的h计算,将弹起的高度重新赋值给h
        h = h/2
        // 将所有的s相加的结果
        result += s
    }
    console.log(result);

15.     12.输出100-200之间所有的素数  (素数,就是除了1和自己本身,不能被别的数整除)

 // 素数:5 2 3 7 11 13 17 19 13

    // 如何判断一个数是不是素数?

    /*

    19

    19%2

    19%3

    19%4

    19%5

    %6

    ...

    %18

    */

// var num = 101
    // // 体面的着装
    // var k = true
    // // 循环处理重复的求余
    // for(var a=2; a<num; a++) {
    //     if(num%a === 0) {
    //         // 不是素数
    //         k = false // 爬狗洞了,粘上土了
    //         break
    //     } /*else {
    //         // 2 3 4 5 6
    //     }*/
    // }
    // // 循环结束了,将所有数字都除过了,才能知道是素数
    // // 经过判断,看看循环中是否有被整除过的情况
    // // 条件:判断循环中是否被break了
    // // 判断k是体面的,还是粘上土的
    // if(k) {
    //     console.log('是素数');
    // } else {
    //     console.log('不是素数');
    // }

猜你喜欢

转载自blog.csdn.net/weixin_45441470/article/details/123386748