JS循环练习题

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

    var num;//定义一个num数
    for (num = 100; num <= 200; num++) {
       if (num % 3 == 0 || num % 7 == 0) {
      //能被3或7整除   即对3或7取余为0
           console.log(num);
       } 
    }

2.山上有一口缸可以装50升水,现在有15升水。老和尚叫和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?

   var water = 15;//初始值是15升水
    var count = 0;
    var totalwater = 50;//总共50升水
    while (true) {
        water += 5;//每次都累加5升水
        count++;//次数加一
        if (water == totalwater) {
            break; //初始值的水累加到与全部水相等时,跳出循环
        }
    }
    console.log(count);//打印次数

3.一个新入职,月工资为2000元的员工,每年涨当年工资5%,20年后的月工资是多少?
方法一:

    var salary=2000;
    for (var year = 1; year <= 20; year++) {
        salary = salary*1.05;
    }
    console.log(salary);

方法二:

      var salary = 2000;
      function getSalary(salaryMonth, year) {
        var salary = salaryMonth * 12
        for (var i = 2; i <= year; i++) {
            var item = salary * 0.05
            salary = salary + item
        }
        document.write('月薪' + salaryMonth, '第' + year + '年工资 :',( salary/12).toFixed(3))
    }
    getSalary(2000, 20)
  1. 计算10的阶乘和阶乘的和
  //10的阶乘
    var num = 1;
    var product = 1;//product来存放阶乘的值
    for (num; num <= 10; num++) {
        product *= num;//
    }
    console.log(product);

       //10的阶乘的和
    var result = 0
    for(var i=1;i<=10;i++){ //控制次数的
        var sum = 1
        for(var j=1;j<=i;j++){
            sum*=j
        }//求阶乘
        result+=sum
    } 
    console.log(result);

5.计算1+3+5+...+99的和

    //方法一:
    var num=1;
    var sum = 0;
    for (num; num <= 99; num++) {
        if (num % 2) {//判断是否为奇数
            sum += num;//奇数累加
        }
    }  console.log(sum);
  方法二:
    var sum = 0;
    for (var i = 1; i < 100; i += 2) {//初始值为1,每次累加2,则都是奇数
        sum += i;//奇数累加
    }
    console.log(sum);

6.九九乘法表

    //i为行,j为列,初始值均为1
    var i = 1;
    for (i; i <= 9; i++) {//外层循环打印1~9行
        var j = 1;
        var str = '';//用' '来存放每个“1X1=1”
        for (j; j <= i; j++) {
            //列数<=行数,写<=不直接写==是要将前面的小于行数的列数也需要打印出来
            内层循环打印1~9列
            str += (j + "x" + i + "=" + j * i + "\t")//字符串拼接
        }
        console.log(str);
    }

7.打印1000~2000年中所有的闰年,每行4个

    //闰年能被4整除且不能被100整除,或者能被400整除的
    var year;
    var count = 0;//
    for (year = 1000; year <= 2000; year++) {
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            document.write(year + '\t'); {
                count++;
                if (count % 4 == 0) {  //当count有4个时则打印并换行
                    document.write('<br>');
                }
            }
        }
    }

9.求: 1-1/2+1/3-1/4... 1/100的和

    var sum = 0;
    var i = 1;
    for (i; i <= 100; i++) {
        if (i % 2 == 0) {    //为奇数时
            sum -= 1 / i     //sum = sum - 1/i
        } else {            //为偶数时  
            sum += 1 / i    //sum = sum - 1/i
        }
    }
    console.log(sum);
  1. 找出所有的水仙花数,三位数,各位立方和等于该数本身。

        for(var i=100;i<1000;i++){
        //获取每位数
        var a = parseInt(i/100)   //百位
        var b = parseInt(i/10%10) //十位
        var c = parseInt(i%10)    //个位
        if(Math.pow(a,3)+Math.pow(c,3)+Math.pow(b,3)==i){
            console.log(i);
        }
    }
    
  2. 五位数中,对称的数称为回文数,找出所有的回文数。 如: 12321。

       for(var i=10000;i<100000;i++){
       //获取对应的万位 和 千位  十位 个位 12321  
       var first = parseInt(i/10000)
       var two = parseInt(i/1000%10)
       var three = parseInt(i/10%10)
       var last = parseInt(i%10)
       if(first==last && two == three){
           console.log(i);
       }
    

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容