好比題目:尋找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後面不容許書寫程序了,也就是說寫在後面的程序無效;