几个经典的循环案例:

1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

    var i=0;
    var h=0.0001;
    while(true){
        i++;
        h=h*2;
        if(h>8848){
            break;
            }
        }
    alert(i);

首先定义折叠次数i,一张纸初始高度0.0001,然后因为不清楚折叠的次数,这里可以考虑使用while循环。

while循环中,第一次折叠,所以i++,然后高度乘以2,然后判断高度是否大于8848,如果是跳出此次,如果不是则继续循环,直到h>8848,然后执行break跳出,输出i的值。

这里还有一个方法:

    var i=0;
    var h=0.0001;
    while(h<=8848){
        h=h*2;
        i++;
        }
    alert(i);

思路基本相同,在while中判断h小于等于8848,如果不是,循环中h乘以2,i加一,直到h大于8848,输出i的值。

2.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问6个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。

    var y=1;
    var x=0;
    var c=0;
    var sy=0;
    var sx=0;
    var sc=0;
    for(i=1;i<=6;i++){
        sy=y;
        sx=x;
        sc=c;
        y=sc+sx;
        x=sy;
        c+=sx;
        }
    alert(y+","+x+","+c);

这里最大的问题就是要设置一个中间变量,不仅要定义当前兔子的数量,还要定义出上个月兔子的数量,然后推算:

开始:幼兔 1 小兔 0 成兔 0
一个月后:幼兔 0 小兔 1 成兔 0
二个月后:幼兔 1 小兔 0 成兔 1
三个月后:幼兔 1 小兔 1 成兔 1
四个月后:幼兔 2 小兔 1 成兔 2
五个月后:幼兔 3 小兔 2 成兔 3
六个月后:幼兔 5 小兔 3 成兔 5

当前月份幼兔 = 上个月的成兔+上月小兔
当前月份小兔 = 上月幼兔
当前月份成兔 = 上月成兔+上月小兔

然后定义出当前每种兔子数量,上个月每种兔子数量,建立循环,在循环中将本月兔子数量的值赋给上个月,再根据上边的式子计算当前月份兔子数量,需要注意控制循环6次,所以i=1,i<=6。

3.羽毛球拍15元,球3元,水2元。200元每种至少一个,200块钱正好花完,有多少可能
羽毛球拍最多买13个 球最多买66个 水最多买100个

因为有三种物品要买,所以这里考虑要用三层for循环嵌套

    var s=0;
    for(var i=1;i<=13;i++){
        for(var l=1;l<=66;l++){
            for(var k=1;k<=100;k++){
                if(15*i+3*l+2*k==200){
                    s=s+1;
                }
            }
        }
    }
    alert(s);

三层fr循环,每一层代表每个商品的数量,然后判断三种商品总金额是不是正好200,如果是,s也就是成功的方案+1。

4.公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性
公鸡最多50,母鸡最多100,小鸡最多200

     var m=0;
    for(var i=1;i<=50;i++){
        for(var l=1;l<=100;l++){
            for(var k=1;k<=200;k++){
                if((i*2+l*1+k*0.5==100)&&(i+l+k==100))
                {
                    m=m+1;
                }
            }
        }
    }
    alert(m);

这里思路和上一个问题相同,唯一需注意的是,题目对记得总金额和数量都有要求,所以if判断中,要有两个条件用&&或者连接。

5.凑钱1,2,5凑20元钱有多少可能
1元 20 2元 10 5元 4

     var m=0;
    for(var i=0;i<=20;i++){
        for(var l=0;l<=10;l++){
            for(var k=0;k<=4;k++){
                if(i+l*2+k*5==20){
                    m=m+1;
                }
            }
        }
    }
    alert(m);

这个题目和上面两个的思路是相同的,需要注意的是因为没有规定每种钱至少一种,所以循环初始值为0。

关于循环,需要注意:

1 先根据情况确定使用哪种循环

2 在看方法,循环嵌套,还是中间变量

3 以上3.4.5题由于总金额在if中已经固定了,所以外层嵌套的循环中的判断条件只要不小于最小值,再大也没有关系,所以直接设定了只买一种商品是最多内卖多少作为判断条件。

JavaScript循环实例的更多相关文章

  1. JavaScript 循环语句入门详解

    JavaScript Switch 语句 语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case ...

  2. java基础61 JavaScript循环语句之while、do...while、for及for...in循环(网页知识)

    本文知识点(目录): 1.while循环语句    2.do...while循环语句    3.for循环语句    4.for...in循环语句    5.附录1(with语句)    6.附录2( ...

  3. JavaScript循环之for/in循环

    今天学到了JavaScript的语句篇.同其他常见编程语言如C.Java等一样,JavaScript中的语句包含:①表达式语句②复合语句和空语句③声明语句④条件语句⑤循环语句⑥跳转语句,当然JavaS ...

  4. JavaScript小实例:拖拽应用(二)

    经常在网站别人的网站的注册页中看到一个拖拽验证的效果,就是它的验证码刚开始不出来,而是有一个拖拽的条,你必须将这个拖拽条拖到底,验证码才出来,说了感觉跟没说一样,你还是不理解,好吧,我给个图你看看: ...

  5. javascript小实例,拖拽应用(一)

    前面我们将了一下拖拽的基本思想,理论是有了,那实践呢,可以运用到什么地方呢?下面就给大家带来一个用拖拽思想写的一个小实例,供大家参考,大致效果看下图: 就是这样一个简单的一个拖拽条,你可以把它理解为滚 ...

  6. JavaScript循环语句-6---for语句,while语句的应用逻辑

    JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...

  7. python3.4学习笔记(十) 常用操作符,条件分支和循环实例

    python3.4学习笔记(十) 常用操作符,条件分支和循环实例 #Pyhon常用操作符 c = d = 10 d /= 8 #3.x真正的除法 print(d) #1.25 c //= 8 #用两个 ...

  8. JavaScript 小实例 - 表单输入内容检测,对页面的增删改

    JavaScript 小实例 - 表单输入内容检测,对页面的增删改 效果体验地址:https://xpwi.github.io/js/JavaScript01/jsForm.html 功能: 1.向页 ...

  9. javascript循环遍历数组输出key value

    javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3] ...

随机推荐

  1. linux配置远程Git仓库

    一,安装git yum install git 二,在服务器(119.28.1.1)目录( /git/admin )上创建一个仓库 cd /git/admin touch aaa.html git i ...

  2. python/numpy/tensorflow中,对矩阵行列操作,下标是怎么回事儿?

    Python中的list/tuple,numpy中的ndarrray与tensorflow中的tensor. 用python中list/tuple理解,仅仅是从内存角度理解一个序列数据,而非数学中标量 ...

  3. 浅谈快速开发框架的分层(WinForm)

    对于B/S都是MVC好不好 不多说了,反正大家都这么用 这里简单说下C/S 首先常用的几种: 模仿B/S的MVC  也有人称之为 MVP 还有MVVM这种真心觉得够够的了,当然也有其优势所在,这里不讨 ...

  4. c++的引用和c的指针之创建链表,二叉树的烦恼和区别

    /* **代码功能:创建一个令人头疼的不算头疼的链表,然后把特定的数据删除. *这次的主题不是在代码上,主要是关于创建链表时候的传参问题,嘿嘿,不相信你没遇到过 */#include "st ...

  5. linux centos ubentu安装IPython四种方法

    IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性.特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPytho ...

  6. MyEclipse Java基础使用笔记

    一.Java开发平台 JavaSE  标准版 Java应用程序 application  五子棋.计算器.qq JavaEE  企业版  Java企业级应用 JavaME 微型版  小型设备    A ...

  7. Numpy入门 - 数组切片操作

    本节主要演示数组的切片操作,数组的切片操作有两种形式:更改原数组的切片操作和不更改原数组的切片操作. 一.更改原数组的切片操作 import numpy as np arr = np.array([1 ...

  8. ACM HDU 1559 最大子矩阵

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1559 这道题 挺好的,当时想出解法的时候已经比较迟了.还是平时看得少. 把行与列都进行压缩.ans[i ...

  9. 2017蓝桥杯省赛C/C++B(补题中)

    标题:等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列. 上边的数列公差为30,长度为6. 200 ...

  10. 如何扩展或者添加硬盘给VMware的Linux操作系统

    我们在使用Linux系统一段时间以后,可能添加的东西原来越多导致原来开辟的硬盘不够,当硬盘剩余空间过小时Ubuntu系统也会给出提示或者可以通过df  -hl命令查看你硬盘使用情况如下图所示:我已经用 ...