js 循环练习

第一题 找出1-100之内有多少个偶数,输出这些偶数,并输出它们的和是多少?

 var sum = 0;
   for (var i = 1; i <= 100; i++) {
      if (i % 2 == 0) {
       document.write(i + '&nbsp&nbsp');
      sum = sum + i;
     }
   }
   document.write(‘总数:' + sum)

​ 第二题 找出100–999里面有多少个水仙花数,分别输出这些水仙花数?

for (var i = 100; i <=999;i++){
          if(i==(Math.pow(i%10,3)+Math.pow(~~(i%100/10),3)+Math.pow(~~(i/100),3))){
            document.write(i+'&nbsp&nbsp')
          }
        }

​ 第三题猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,

​ 又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

​ 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

var sum = 1;
        for (var i = 1; i < 10; i++) {
            sum = 2 * (sum + 1)
        }
        document.write("总数:" + sum)

​ 第四题 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

 var m = 1.0;
        var n = 1.0;
        temp = 0;
        sum = 0;
        for (var i = 1; i <= 20; i++) {
            temp = m;
            m = n + m;
            n = temp;
            sum = sum + m/n;
            console.log(sum)
        }
        document.write("总数为:" + sum)

第五题 小球从100米掉落,弹起到50米,然后再掉落,弹到25米, 弹10次以后,小球经过的路径是多少米(截止第10次弹地

    var sum=100;
    for(var i=1;i<10;i++){
        sum=2*(100/(Math.pow(2,i)))+sum;
        console.log(sum)
    }
    document.write('总数:'+sum)

​ 第六题有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1; 按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。编程求韩信至少有多少兵?

var num = 1;
    while (true) {
        num++;
        if (i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10) {
            break;
        }
    }

第一题: 有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了500元,每个男人各花30元,每个女人各花20元,每个小孩各花10元,问男人女人和小孩各有几人?

for (var m = 1; m < 30; m++) {
            for (var wm = 1; wm < 30 - m - 1; wm++) {
                var child = 30 - m - wm;
                if (m * 30 + wm * 20 + child * 10 == 500) {
                    console.log('男人:' + m + '女人:' + wm + '孩子:' + child);
                }
            }
        }

​ 将一个正整数分解质因数。例如:输入90 ,打印出90=2 3 3 5。输入60=2 2 3 5。

var num = 90;
        var str = '';
        for (var i = 2; i <= num; i++) {
            if (num % i == 0) {
                str = str ? str + '*' + i : i
                num = num / i;
                i = 1;
            }
        }
        console.log(str);

序列:1, 2,3,5,8。找出第20个数是多少?得出前20个数之和是多少?

var first = 1;
        var second = 2;
        var third = 0;
        var sum = 0;
        for (var i = 2; i < 20; i++) {
            third = first + second;
            sum = sum + third;
            first = second;
            second = third;
        }
         console.log(sum);

​ 从键盘输入n和a的值,计算a+aa+aaa+ … +aa… a(n个a)的值

 var n = parseInt(prompt('输入n'));
        var a = parseInt(prompt('输入a'));
        // var n = 3;
        // var a = 3;
        var sum = 0;
        for (var i = 1; i <= n; i++) {
            sum = sum + a;
            a = a * 10;
        }
        console.log(sum)

​ 编程判断输入的字符串是否为"回文"。所谓"回文”是指顺读和倒读都一样,如abcba

 var str = prompt('输入字符串');
        var flag = true;
        for (var i = 0; i < ~~str.length / 2; i++) {
            if (str[i] != str[str.length - i - 1]) {
                flag = false;
                console.log('不是回文数')
                break;
            }
            if (flag) {
                console.log('是回文数')
            }
        }

​ 抓球问题:有红球5个,黑球7个,白球9个,取出12个有多少种组合分别是什么

  for (var r = 1; r <= 5; r++) {
            for (var b = 1; b <= 7; b++) {
                w = 12 - r - b;
                console.log('红球:' + r + '黑球:' + b + '白球:' + w)
            }
        }

​ 组合问题:用1元纸币兑换1分,2分和5分的硬币,要求兑换总数为50枚,
​ 问可以有多少种组合,每种组合对应1分, 2分, 5分分别是多少? i代表1分,j代表2分,k代表5分

for (var i = 1; i <= 50; i++) {
            for (var j = 1; j <= 50 - i; j++) {
                k = 50 - i - j;
                if (i + j * 2 + k * 5 == 100) {
                    console.log('一分:' + i + '两分:' + j + '五分:' + k)
                }
            }
        }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值