JavaScript循环实例
几个经典的循环案例:
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循环实例的更多相关文章
- JavaScript 循环语句入门详解
JavaScript Switch 语句 语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case ...
- java基础61 JavaScript循环语句之while、do...while、for及for...in循环(网页知识)
本文知识点(目录): 1.while循环语句 2.do...while循环语句 3.for循环语句 4.for...in循环语句 5.附录1(with语句) 6.附录2( ...
- JavaScript循环之for/in循环
今天学到了JavaScript的语句篇.同其他常见编程语言如C.Java等一样,JavaScript中的语句包含:①表达式语句②复合语句和空语句③声明语句④条件语句⑤循环语句⑥跳转语句,当然JavaS ...
- JavaScript小实例:拖拽应用(二)
经常在网站别人的网站的注册页中看到一个拖拽验证的效果,就是它的验证码刚开始不出来,而是有一个拖拽的条,你必须将这个拖拽条拖到底,验证码才出来,说了感觉跟没说一样,你还是不理解,好吧,我给个图你看看: ...
- javascript小实例,拖拽应用(一)
前面我们将了一下拖拽的基本思想,理论是有了,那实践呢,可以运用到什么地方呢?下面就给大家带来一个用拖拽思想写的一个小实例,供大家参考,大致效果看下图: 就是这样一个简单的一个拖拽条,你可以把它理解为滚 ...
- JavaScript循环语句-6---for语句,while语句的应用逻辑
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...
- python3.4学习笔记(十) 常用操作符,条件分支和循环实例
python3.4学习笔记(十) 常用操作符,条件分支和循环实例 #Pyhon常用操作符 c = d = 10 d /= 8 #3.x真正的除法 print(d) #1.25 c //= 8 #用两个 ...
- JavaScript 小实例 - 表单输入内容检测,对页面的增删改
JavaScript 小实例 - 表单输入内容检测,对页面的增删改 效果体验地址:https://xpwi.github.io/js/JavaScript01/jsForm.html 功能: 1.向页 ...
- javascript循环遍历数组输出key value
javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3] ...
随机推荐
- Windows server2012如何运行Javaweb项目?
最近用java写了个小项目,想要部署到服务器,于是买了个Windows server2012,但是不知道怎么部署,后来才知道需要配置java运行环境.经过一番研究最终搞定了.下边是我的个人总结,由于是 ...
- 延迟执行之 Invoke 函数
Invoke 函数需要继承 MonoBehaviour 类后才能使用. Invoke(string str,float a):a 秒后执行名为 str 函数(只会调用一次). Invoke(strin ...
- .net 系列:并发编程之一 并发编程的初步理论
一.关于并发编程的几个误解 1)并发就是多线程 实际上多线程只是并发编程的一种形式而已,在C#中还有很多其他的并发编程技术,包括异步编程,并行编程,TPL数据流,响应式编程等. 2)只有大型服务器才 ...
- windows下tensorflow的安装
一.直接python安装 1.CPU版本: pip3 install --upgrade tensorflow 2.GPU版本:pip3 install --upgrade tensorflow-gp ...
- 中介者模式(Mediator)
中介者模式(Mediator) 中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改.如果使用中介者模式,只 ...
- dijkstra最小花费
//Gang #include<iostream> #include<cstring> #include<algorithm> #include<cstdio ...
- 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面
由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...
- CentOS6 图形界面(gnome)安装,使用vnc进行远程连接
CentOS6相对于CentOS5的安装有了不少的进步,有不少默认的选项可以选择,如: Desktop :基本的桌面系统,包括常用的桌面软件,如文档查看工具. Minimal Desktop :基本的 ...
- for循环,for in和for of的区别
最近在写代码,总在被烦恼着到底遍历的时候到底该使用for循环,还是使用for in或者for of ,今天查了以下 ,写出来. 我们一般用for循环来遍历数组,因它可以按顺序的返回每一个索引的值或者 ...
- Android关于AutoService、Javapoet讲解
一.上篇文章提到自定义processor中用到AutoService 文章中我们用到了AutoService, 使用@AutoService(Processor.class),编译后 MethodSp ...