目前为止学习过的循环解析过程
本章目录
----------① 10以内的奇数偶数
----------② 输出乘法口诀表
----------③ 找出100以内与7相关的数
----------④累加求和
----------⑤求10的阶乘
----------⑥兔子题
----------⑦折纸达到珠峰高度
----------⑧200元买三种东西花光所有钱
----------⑨100文买鸡
----------⑩凑钱1,2,5凑20元钱有多少可能
----------⑪填写加减使等式成立
----------⑫棋盘芝麻
----------⑬篮球弹跳
----------⑭阶乘相加
----------⑮阶乘相加
----------⑯找闰年
一、找出十以内的奇数和偶数
//10以内奇数偶数//10以内,代表循环条件,奇数偶数是判断条件,偶数是除以2余0的数,而奇数是自然数中除偶数之外的所有数,不能被2整除的数for( var i=0;i<=10;i++){//定义循环的条件,从0开始判断,范围包括10以内,每次执行+1;if(i%2==0){//该判断的意义为,如果能够被2整除余数是0,则进入内部的数是偶数,然后输出document.write("偶数是:"+i+"<br />")}else{//那么除了偶数就是奇数document.write("奇数是:"+i)}}//十以内与7相关的数
输出结果:
二、输出乘法口诀表
所有的公式可以写为a*b=c的形式,那么口诀表的格式如下
1*1=1;
1*2=2;2*2=4;
1*3=3;2*3=6;3*3=9;
1*4=4;2*4=8;3*4=12;4*4=16;
我们发现,每一列的a是相同的数值,且从第一列开始每次+1
每一行的b是相同的数值,且从第二行开始每次+1;
//可以先定义a的范围及a的运算形式,每次+1for(var a=1;a<10;a++){//然后定义b的范围,每次+1,并且使用b<=1,去重复的公式,避免出现1*1--1*9;2*1--2*9的重复for(var b=1;b<=a;b++){//定义ab的乘积var c = a*b;//输出因为a的每次+1换行,所以使b显示在前,a显示在后document.write(b+"*"+a+"="+c+";")}document.write("<br>");}
结果:
三、找出100以内与7相关的数
我们可以考虑所有与7相关的数,有下面几种情况
① 判断能被七整除的,
② 尾数是7的数, 除以10余7的,
③ 十位数是7的数字, (除以10的整数部分)除以10等于7的,
//首先定义循环,遍历每一个小于等于100的数字for(var seven=0;seven<101;seven++){//判断能被七整除的,除以10余7的(尾数是7的数),(除以10的整数部分)除以10余7的,这是十位数是7的数字if(seven%7==0 || seven%10==7 || parseInt(seven/10)==7){document.write(seven+" "); } }
输出结果:
四、累加求和,求0-100之间的和,
0+1+2+3+4+5...+100,
每次总数等于之前的和加当前的数,而当前的数是递加1
var sum = 0;//定义变量盛放总数,0+任何数都等于原来的数//循环,从0开始加到100for(var i=0;i<101;i++){//因为i从0开始,i每次加1.所以总数=上一次的总数+i当前的数sum = sum+i; //0 1 3 6}document.write(sum);
输出结果:
五、求10的阶乘
数学表达方式1*2*3*4*5....*10
//首先想到的是规定范围,从1开始(排除0,因为0乘以任何数为0),最高循环到10var factorial =1;//因为是乘法,所以默认值是1,1乘以任何数为原来的数for(var i=1;i<11;i++){//阶乘等于上一个得出来的积再乘以当前数factorial = factorial*i;}document.write(factorial);
输出结果:
六、兔子题
题目:有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问8个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。
题目解析
月份 0 1 2 3 4 5 6 7 8
幼兔 1 0 1 1 2 3 5 8 13
小兔 0 1 0 1 1 2 3 5 8
成兔 0 0 1 1 2 3 5 8 13
从第一个月开始看,规律是
小兔初始值为1;每个月的小兔等于上个月的幼兔
成兔初始值为0,每个月的成兔等于上个月的成兔+上个月的小兔
幼兔初始值为0,每个月的幼兔等于上个月的小兔+上个月的额成兔
var yt =1;var xt =0;var ct =0;for(var month=1;month<9;month++){//成兔等于上个月的成兔+上个月的小兔ct = ct + xt;//小兔等于上个月的幼兔xt = yt; //yt = xt + ct因为xt已经赋值,所以会出现yt等于之前的和,所以找到新规律,当前月的小兔等于当前月的成兔yt = ct; }alert(ct+yt+xt)
输出结果:
七、折纸达到珠峰高度
题目:折多少次和珠穆朗玛峰一样高,一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米
定义纸的厚度,每次运行对折一次,即为原来的二倍厚度,判断厚度大于8848的时候记录循环次数并跳出
var h = 0.0001;//从第一次对折开始for(var i=1;i>=0;i++){//每次对折当前高度等于上次高度*2倍h = h*2; //判断如果h的厚度大于8848的时候,输出i的对折次数if(h>8848){alert(i);break; //该处执行一次并跳出,否则继续运行} }
输出结果:
八、200元买三种东西花光所有钱
题目:羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能
羽毛球拍x最多买13个 球y最多买66个 水z最多买100个 以及 15x+3y+2z=200
var sum = 0;//容器存放次数//x的可能最少1次,所以循环范围最多的次数-1for(var x=1;x<15;x++){//y的可能最少1次,所以循环范围最多的次数-1for(var y=1;y<66;y++){//z的可能最少1次,所以循环范围最多的次数-1for(var z=1;z<100;z++){//判断三种物品的价格相加等于200的可能再次运行if(x*15+y*3+z*2==200){ sum++;//每次符合条件,计数器+1} } } }alert(sum);
输出结果:
九、100文买鸡
题目:公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性
公x最多可能50种可能 母y最多可能100种可能 小z最多200种可能 以及 2x+y+0.5z=100
var sum = 0;//容器存放次数//x的可能最少1次,所以循环范围最多的次数-1for(var x=1;x<51;x++){//y的可能最少1次,所以循环范围最多的次数-1for(var y=1;y<101;y++){//z的可能最少1次,所以循环范围最多的次数-1for(var z=1;z<201;z++){//判断三种物品的价格相加等于200的可能再次运行if(2*x+y+0.5*z==100 && x+y+z==100){sum++;//每次符合条件,计数器+1}} } }alert(sum);
输出结果:
十、凑钱1,2,5凑20元钱有多少可能
1块钱x最多可能20种可能, ,2元钱y最多可能10种可能 5块钱z最多4种可能 以及 x+2y+4z=100
var sum = 0;//容器存放次数//因为没有规定最少存在1次所以初始值=0,所以循环范围最多的次数等于可能的最多次数for(var x=0;x<21;x++){for(var y=0;y<11;y++){for(var z=0;z<5;z++){if(x+2*y+5*z==20){sum++;} } } }alert(sum);
输出结果:
十一、填写加减使等式成立
题目:括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符 12()34()56()78()9 = 59;
加减号可以使用当前数字乘以1或乘以-1代替,并且区分每个加减号,规定ijkl为四个变量存储1或-1
四个运算符,每个运算符有+或-两个选项12+i+34+j+56+k+78+l+9+"="+59
//规定循环,数字初始值为-1,每次运行+2,得到1,最大值为1;for(var i=-1;i<2;i+=2){for(var j=-1;j<2;j+=2){for(var k=-1;k<2;k+=2){for(var l=-1;l<2;l+=2){//判断等式成立if(12+i*34+j*56+k*78+l*9==59){//为每个ijkl变量赋予+号或-号if(i==1){i="+";}else{i="-"}if(j==1){j="+";}else{j="-"}if(k==1){k="+";}else{k="-"}if(l==1){l="+";}else{l="-"}alert(12+i+34+j+56+k+78+l+9+"="+59);}}}}}
输出结果:
十二、棋盘芝麻
题目:棋盘有32个格子,第一个格子放1个芝麻,第二个放2个,第三个放4个,第四个放8个。。。每个芝麻的重量为0.00001kg,如果要放满整个棋盘,需要多少重量的芝麻。
芝麻数量 1 2 4 8 16 32
相应格子 1 2 3 4 5 6
相应算法 1*2^0 1*2^1 1*2^2 1*2^3 1*2^4 1*2^5
//定义总数量var sum =0;for(var i=1;i<33;i++){//每次进入下一个格子的时候保证a初始值=1,因为,计算下面的循环,a初始值必须为1;var a =1; var n =2;for(var j=1;j<i;j++){/*进入该循环时,每次执行a = a*2,并且j始终小于i一个数,所以当i=1的时候是第一格,不执行,跳出,a=1;当i=2的时候第二格,执行一次,a=2;跳出当i=3的时候第三个,执行两次,a=4,跳出*/a = a*n;}//总数量初始值为0,等于上次总数+当前格子数sum = sum + a;}alert(sum*0.00001)
输出结果 :
十三、篮球弹跳
题目:篮球从10米高的地方落下,每次弹起的高度是原来的0.3倍,问弹跳10次之后篮球的高度。
//初始高度var h =10;//循环条件弹跳次数,for(var i=1;i<11;i++){//循环内容高度改变,h = 0.3*h; }alert("弹跳10次之后篮球的高度为:"+h);
输出结果:
十四、阶乘相加
题目:计算 1!+2!+3!+…..+10!的结果。
算法
1 1
1*2 1*2 =2
1*2*3 2*3 =6
1*2*3*4 6*4 =24
1*2*3*4*5 24*5=120
左侧是当前的阶乘,每次阶乘等于上次阶乘乘以当前数字
右侧是代表当前的和等于之前的和加当前的阶乘
var a = 1;var sum = 0;//定义存储和的容器//循环范围,十以内for(i=1;i<11;i++){//计算当前的阶乘,每次循环等于上次的阶乘乘以当前数字a = a*i;//计算和,每次和等于上次的和+当前的阶乘sum = sum + a;}alert(sum);
输出结果:
十五、找闰年
题目:输出1000年到2018年的所有闰年
凡是能被4整除的年份,但这里面有以及凡是能被400整除且不能被100整除的
两种写法
第一种
var sum = 0;//定义计算闰年数的容器//循环遍历规定范围内的每一年for(var y=1000;y<=2018;y++){//遍历出每一种能被4除的年份if(y%4==0){//凡是能被100整除的年份之中找到只能被400整除的if(y%100==0){if(y%400==0){document.write("<div>"+y+"</div>");sum++;}}//除了上面的可能,凡是被4整除的年份列举else{document.write("<div>"+y+"</div>");sum++;}}}document.write("<div><br />闰年一共有:"+sum+"年</div>")
第二种
var sl = 0;//定义计算闰年数的容器//循环遍历规定范围内的每一年for(var i=2010;i<2019;i++){//判断能被400整除或者能被4整除并且不能被100整除的年份if(i%400==0 || i%4==0 && i%100!=0){document.write(i);sl++;}}alert(sl);
输出结果
转载于:https://www.cnblogs.com/wannian/p/8315949.html
目前为止学习过的循环解析过程相关推荐
- mybatis源码学习(三):MappedStatement的解析过程
我们之前介绍过MappedStatement表示的是XML中的一个SQL.类当中的很多字段都是SQL中对应的属性.我们先来了解一下这个类的属性: public final class MappedSt ...
- Android 8.0 学习(12)---init.rc语法及解析过程总结
Android 8.0 init.rc语法及解析过程总结 Android O高通默认使用QMMI取代了fastmmi,但是由于QMMI是一个APK,属于Android应用层面,所以必须等到 ...
- 深度学习目标检测详细解析以及Mask R-CNN示例
深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...
- DNS那些事——从浏览器输入域名开始分析DNS解析过程
我们就从在浏览器输入域名开始分析. 文章目录 1. DNS服务器有哪些? 2. 从浏览器输入https://abc13.ban2.lcy0000.top/,DNS如何解析? 3. hosts文件是什么 ...
- 使用base标签后图片无法加载_Spring 源码学习(二)-默认标签解析
`Spring` 解析默认标签~ 从上一篇笔记可以看出,在容器注册 bean 信息的时候,做了很多解析操作,而 xml 文件中包含了很多标签.属性,例如 bean . import 标签, meta ...
- DNS解析过程中不得不知道的那些事
DNS解析过程中不得不知道的那些事 0x01 定义 0x02 域名结构 0x03 DNS查询方式 1.从查询方式分类 2.从查询内容: 0x04 常见的DNS资源记录 1.A/AAAA记录 2.CNA ...
- React深入学习与源码解析笔记
***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...
- NeurIPS 2019 少样本学习研究亮点全解析
作者:Angulia Chao 编辑:Joni Zhong 少样本学习(Few-Shot Learning)是近两年来非常有研究潜力的一个子方向,由于深度学习在各学科交叉研究与商业场景都有比较普遍的应 ...
- oracle 测试sql执行时间_通过错误的SQL来测试推理SQL的解析过程
这是学习笔记的第 1977 篇文章 如果抛出一个问题,你是如何理解MySQL解析器的,它和Oracle解析器有什么差别?相信大多数同学都会比较迷茫,因为这个问题很难验证,要不是看源码,要不就是查看书上 ...
最新文章
- 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法
- 专访NIPS主席:如何保证论⽂评审的公平性?| 人物志
- 我对变量产生了这些想法
- java ide 2017_Intellij ide 2017.2新建javaweb项目,并且部署
- Python 二分查找算法
- ubuntu安装Qt开发环境
- HTTP状态码表格汇总
- RDS数据库通过内网导出到其他RDS实例和ESC上的MYSQL数据库(新手运维)
- 大神云集!2019年谷歌博士奖学金获得者重磅问世,清华、上交大、港中文入选最多!...
- go regexp匹配字符串_多模式字符串匹配算法ac自动机(用go语言实现)
- .net MVC之表单的使用
- 时时获得高德地图坐标 http://lbs.amap.com/console/show/picker
- Coreseek安装测试配置指南(转)
- 2019年7月Github上最热门的Java开源项目
- 有关计算机科学的问卷调查,E问卷:社会调查问卷新形式
- 【英语阅读】纽约时报 | 李子柒:隔离时期的田园“公主”
- vlc搭建流媒体转发服务器
- 前后端分离,图片(资源)路径如何处理
- 川大锦江学院吧计算机学院答辩,川大锦江学院上演跨国网上毕业论文答辩
- 图解WLAN网络拓补结构
热门文章
- java 线程阻止_Java:在特定队列大小后阻止提交的ExecutorService
- Keras Input Layer
- 机器学习中的范数理解(L0,L1,L2)
- Nvidia GPU的浮点计算能力(FP64/FP32/FP16)
- CPU, GPU, FPGA计算能力
- 如何在 Windows 下创建 macOS 引导介质 (USB 启动盘)
- Linux ❉ Chronyd时间同步服务器详解
- 危化品柜颜色如何区分?
- 开源邮件客户端_排名前6位的开源桌面电子邮件客户端
- Ubuntu安装软件时报错(报错:dpkg: 处理软件包 xxx (--configure)时出错: 依赖关系问题 - 仍未被配置)