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] ...
随机推荐
- 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)
Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...
- django 前端请求跨域问题解决
django 前端请求跨域问题解决 笔者之前在做django-restful-api开发的时候,在前端请求页面发送请求的时候直接出现301,域名重定向的问题,经过一番查阅资料,终于得到了非常完美的解决 ...
- sockt套接字编程
一.Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机的 ...
- LuaJavaBridge - Lua 与 Java 互操作的简单解决方案
http://dualface.github.io/blog/2013/01/01/call-java-from-lua/ 最近在游戏里要集成中国移动的 SDK,而这些 SDK 都是用 Java 编写 ...
- 浅谈快速开发框架的分层(WinForm)
对于B/S都是MVC好不好 不多说了,反正大家都这么用 这里简单说下C/S 首先常用的几种: 模仿B/S的MVC 也有人称之为 MVP 还有MVVM这种真心觉得够够的了,当然也有其优势所在,这里不讨 ...
- 数字三角形-poj
题目要求: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的数字三角形中寻找在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大.路径上的每一步都只能往左 ...
- Winform控件Tag使用规范
背景 Tag在WinForm控件中经常被用来存储临时数据,类型为object,但是当程序中多个地方使用到Tag时,容易造成Tag使用的混乱,Tag是如此重要的一个属性,应该要好好考虑下如何有效的使用T ...
- 一个非常好用的图片切割工具(c# winform开发) 附源码
本人业余时间开发了一个图片切割工具,非常好用,也很灵活! 特别对大型图片切割,更能体现出该软件的优势! 开发工具为winform,源码下载地址:http://download.csdn.net/dow ...
- Spring-MVC理解之一:应用上下文webApplicationContext
一.先说ServletContext javaee标准规定了,servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext作为公共环境容器存放公共信息.ServletCon ...
- ThreadLocal终极源码剖析
目录一.ThreadLocal1.1 源码注释1.2 源码剖析 散列算法-魔数0x61c88647 set操作 get操作 remove操作1.3 功能测试1.4 应用 ...