好比题目:寻找1~1000以内,全部能被5整除、或者能被6整除的数字javascript
1 for(var i = 1 ; i <= 1000 ; i++){java 2 if(i % 5 == 0 || i % 6 == 0){算法 3 console.log(i);编程 4 }安全 5 }模块化 |
上面这个算法,咱们有一个术语“穷举法”。函数
穷: 完整。欲穷千里目,更上一层楼。穷尽。学习
举: 列举,推举。翻译
穷举法:就是一个一个试。咱们如今要寻找1~1000以内,全部能被5整除、或者能被6整除的数字。游戏
咱们的思路,就是将一、二、三、四、……99八、99九、1000依次去试验。看看这个数字,能不能被5或者6整除。
这时候你说,老师,那计算机太辛苦了。你看,13这个数字,为何还要试呢?打眼一看就不能被五、6整除。
计算机就是一个奴隶。它没有思惟,它就是一个不吃饭,有着极强计算力的东西。
你们从小到大,都玩儿过的一个庸俗的游戏:
游戏玩儿法就是,你们轮流报数,若是报到能被7整除的数字,或者尾数是7的数字,都算踩地雷了。就应该罚唱歌。
请在控制台输出1~60之间的全部“安全数”。
好比:
一、二、三、四、五、六、八、九、十、十一、十二、1三、1五、1六、1八、1九、20、2二、2三、2四、2五、2六、2九、30……
答案见案例
水仙花数是一种特殊的三位数,它的特色就是,每一个数位的立方和,等于它自己。
好比153就是水仙花数。由于:
13+53+33 = 153
100~999以内,只有4个水仙花数,请找出来。
特别经典的算法,是每一个学习编程的人,都要会作。
答案见案例,咱们只列出数值答案: 15三、370、37一、407
求和的题目,涉及到了新的一种算法思想,叫作“累加器”。
1+2+3+4+5+6……
正确的:
1 var sum = 0; //累加器 2 //遍历1~100,将全部的数字扔到累加器里面 3 for(var i = 1 ; i <= 100 ; i++){ 4 sum = sum + i; 5 } 6 console.log(sum); |
初学者常见的错误:
错误1:不声明sum,不行的,由于全部的变量都要声明:
1 //遍历1~100,将全部的数字扔到累加器里面 2 for(var i = 1 ; i <= 100 ; i++){ 3 sum = sum + i; 4 } 5 console.log(sum); |
错误2: sum不能在for里直接声明:
1 //遍历1~100,将全部的数字扔到累加器里面 2 for(var i = 1 ; i <= 100 ; i++){ 3 var sum = sum + i; 4 } 1 console.log(sum); |
错误3: 每次for循环都要var一次,是不正确的:
1 //遍历1~100,将全部的数字扔到累加器里面 2 for(var i = 1 ; i <= 100 ; i++){ 3 var sum = 0;//累加器 4 sum = sum + i; 5 } 6 console.log(sum); |
所谓的阶乘,好比6的阶乘,就是1*2*3*4*5*6 = 720。
如今,计算13的阶乘。
1 var result = 1; //累乘器 2 3 for(var i = 1 ; i <= 13 ; i++){ 4 result = result * i; 5 } 6 console.log(result); |
昨天晚上的做业3,就是用户输入一个数,输出所偶遇可以整除它的数字。
好比,
用户输入48,此时输出一、二、三、四、六、八、十二、1六、2四、48 。 共10个数字。
用户输入21,此时输出一、三、七、21.共4个数字。
今天的这道题目,和昨天的这个题目很是像,不过不输出完成序列,只输出个数。
也就是说,用户输入48,弹出10。
用户输入21,弹出4
用户输入11,弹出2
提示:此题用到累加器。
质数:就是只能被1和本身整除。
翻译过来:它的因数个数是2。
好比:二、三、五、七、十一、1三、1七、1九、2三、2九、3一、37……
用户输入一个数字,弹出这个数字是不是质数。
提示,用2.5的思路。
答案见案例。
1 <script type="text/javascript"> 2 console.log("你好"); 3 sayHello(); //调用函数 4 5 //定义函数: 6 function sayHello(){ 7 console.log("欢迎"); 8 console.log("welcome"); 9 } 10 </script> 11 </body> |
函数,是一种封装。就是将一些语句,封装到函数里面。经过调用的形式,执行这些语句。
函数的使用,是两个步骤,第一步,函数的定义:
语法:
1 function 函数名字(){ 2 3 } |
function就是英语“函数”、“功能”的意思。顾名思义,将一些功能封装到函数里面。
function是一个关键字,和var、typeof同样,都是关键字,后面要加空格。
函数名字的命名规定,和变量的命名规定同样。只能是字母、数字、下划线、美圆符号,不能以数字开头。
后面有一对儿空的小括号,里面是放参数用的,下午介绍。大括号里面,是这个函数的语句。
常见错误:
不能小括号包裹大括号:
1 function sayHello({ 2 3 }) |
不能忘了小括号对儿:
1 function sayHello{ 2 3 } |
第二步,函数的调用。
函数若是不调用,等于白写。
调用一个函数,太简单了,就是这个函数的名字后面加小括号对儿。
语法:
1 函数名字(); |
定义函数,能够在调用的后面:这是JS的语法特性,函数声明头的提高。知道就好了。
1 console.log("你好"); 2 sayHello(); //调用函数 3 4 //定义函数: 5 function sayHello(){ 6 console.log("欢迎"); 7 console.log("welcome"); 8 } |
函数的功能、好处:
1) 将会被大量重复的语句写在函数里面,这样之后须要这些语句的时候,直接调用函数,不用重写那些语句。
2) 简化编程,让编程变的模块化。
实际参数和形式参数的个数,要相同。
1 qiuhe(3,4); 2 qiuhe("3",4); 3 qiuhe("我爱你","中国"); 4 5 function qiuhe(a,b){ 6 console.log(a + b); 7 } |
1 <script type="text/javascript"> 2 console.log(qiuhe(3,4)); 3 4 function qiuhe(a,b){ 5 return a + b; 6 } 7 </script> |
return就是英语“返回”的意思,那么就表示此时这个“函数调用的表达式”(红色部分),值就是这个a+b。
● 函数里面能够没有return,若是有,只能有一个。不能有多个return;
● 函数里面,return后面不容许书写程序了,也就是说写在后面的程序无效;