★文章內容學習來源:拉勾教育大前端就業集訓營
本篇學習目標:
1.理解窮舉思想、累加器、累乘器實作原理;
2.能夠綜合利用流程控制陳述句實作小案例,
目錄
- 一、窮舉思想
- 1.介紹
- 2.制作方法
- 3.案例
- 二、累加器
- 1.介紹
- 2.注意事項
- (1)累加器必須定義在回圈外面的前面
- (2)初始值必須設定為 0
- (3)使用最終累加結果時,必須在 for 回圈結束后的外面
- 3.案例
- 三、累乘器
- 1.介紹
- 2.注意事項
- (1)累乘器必須定義在回圈外部前面
- (2)初始值必須是 1
- (3)使用最終累乘結果時,必須在 for 回圈結束后的外面
- 3.案例
- 四、案例應用
一、窮舉思想
1.介紹
- 窮:窮盡,舉:列舉
- 實際案例中,可能需要找到一些有規律的資料,但是計算機沒辦法自動智能篩選所要的資料,只能程式員自己書寫一段代碼,讓計算機根據代碼去進行篩選,
- 窮舉思想:是一種解決問題的方法,將所有的需要資料所在的范圍內所有的資料都一一列舉出來,再根據規律的條件對所有這些資料進行篩選,這種方式就是窮舉法,
2.制作方法
- for 回圈:外層使用 for 回圈進行一一列舉,
- if 陳述句:內層用 if 陳述句進行判斷,篩選需要的資料,如果滿足條件就操作資料,如果不滿足條件跳過看下一次回圈的資料,
3.案例
案例1:請在控制臺輸出 6 的所有約數,
注意:
a % b = 0,a 叫做 b 的倍數,b 叫做 a 的約數,
約數也叫作因數,
從可能性中一一列舉,篩選,
一個數的約數只能是小于等于自己的數,
- 案例思路:
6 的約數可能性有1-6 之間,
看 1,是 6 的約數,輸出
看 2,是 6 的約數,輸出
看 3,是 6 的約數,輸出
看 4,不是 6 的約數,跳過
看 5,不是 6 的約數,跳過
看 6,是 6 的約數,輸出
*代碼如下:
//窮舉思想:請在控制臺輸出 6 的所有約數,
var a = 6;
for (var b = 1 ; b < a ; b++) {
if (a % b == 0) {
console.log(b + "是" + a +"的約束");
}
}

案例2:請讓用戶任意輸入一個數字,控制臺自動判斷出所有這個數的約數,
var i = prompt("請輸入一個整數","6");
for (var n = 1; n < i ; n++) {
if (i % n == 0) {
console.log(n + "是" + i + "的一個約數");
}
}

二、累加器
1.介紹
- 有時候需要的不是每個資料是什么,需要得到所有資料的加和,必須想辦法將所有的資料的和存起來,就用到了累加器,
- 累加器本質就是變數,
- 實作累加的效果,就是利用回圈,每次回圈就將新的資料加到原始的變數中去,賦值程序是一個加等于賦值,
2.注意事項
(1)累加器必須定義在回圈外面的前面
- 累加器必須定義在回圈外面的前面,如果定義在回圈內部,每次回圈都會將累加器重置,不能實作累加功能,
(2)初始值必須設定為 0
- 累加器的初始值必須設定,而且必須設定為 0,不會影響累加結果,(因為0加任何數都等于任何數)
(3)使用最終累加結果時,必須在 for 回圈結束后的外面
- 使用最終累加結果時,必須在 for 回圈結束后的外面,如果寫在回圈內部,回圈沒結束,并不是最終需要的值,
3.案例
求 1-10 之間所有整數的和,
//定義累加器
sum = 0;
for (var i = 0; i <= 10; i ++ ) {
//用加等于賦值實作累加
sum += i ; //等價于sum = sum + i
}
//輸出累加結果
console.log (sum);

三、累乘器
1.介紹
- 累積一些資料的乘積,與累加器非常類似,
2.注意事項
(1)累乘器必須定義在回圈外部前面
- 累乘器必須定義在回圈外部前面,
(2)初始值必須是 1
- 累乘器的初始值必須是 1,1 乘以任何數都等于本身,
(3)使用最終累乘結果時,必須在 for 回圈結束后的外面
- 累乘器最終結果必須在 for 回圈結束后使用,
3.案例
求10的階乘(10!),
//定義累乘器
var mul = 1;
for (i = 10 ; i >= 1 ; i--) {
//用乘等于賦值,實作累乘
mul *= i; //mul = mul * i
}
//輸出最后結果
console.log(mul);

四、案例應用
水仙花數是一種特殊的三位數,它的特點就是,每個數位的三次方和,等于它本身,
請編程找出來,
//窮舉思想找出所有三位數:
for (i = 100 ; i <= 999 ; i ++) {
//找到i的個位十位百位
var g = i % 10;
var s = parseInt(i / 10) % 10;
var b = parseInt( i / 100) ;
//判斷每個數位的三次方和是否等于i本身
if (g*g*g +s*s*s + b*b*b == i) {
console.log(i+"是水仙花數");
}
}

下篇繼續:
【71-79】Java Script學習——階段2
【71】JS(5)——陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279248.html
標籤:其他
