# JavaScript如何求1到100的和
在編程中,計算連續整數的和是一個經典問題。本文將介紹多種用JavaScript實現1到100求和的方案,并分析它們的優缺點。
## 一、基礎循環方法
### 1. for循環實現
```javascript
let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum); // 輸出5050
時間復雜度:O(n)
特點:最直觀的實現方式,適合初學者理解循環結構
let sum = 0;
let i = 1;
while (i <= 100) {
sum += i;
i++;
}
let sum = 0;
let i = 1;
do {
sum += i;
i++;
} while (i <= 100);
const sum = Array.from({length: 100}, (_, i) => i+1)
.reduce((acc, cur) => acc + cur, 0);
const sum = [...Array(100).keys()]
.map(x => x+1)
.reduce((a,b) => a+b);
const sum = 100 * (1 + 100) / 2; // 5050
時間復雜度:O(1)
優勢:性能最優解
適用場景:連續整數求和
function sumTo(n) {
return n === 1 ? 1 : n + sumTo(n-1);
}
console.log(sumTo(100)); // 5050
注意:JavaScript引擎有調用棧限制,過大的n會導致棧溢出
使用console.time()進行簡單測試:
console.time('for循環');
// for循環實現
console.timeEnd('for循環'); // 約0.1ms
console.time('數學公式');
const result = 100*101/2;
console.timeEnd('數學公式'); // 約0.01ms
function rangeSum(start, end) {
return (end - start + 1) * (start + end) / 2;
}
// 求1-100所有偶數的和
const evenSum = Array.from({length: 100}, (_,i) => i+1)
.filter(x => x % 2 === 0)
.reduce((a,b) => a+b);
| 方法 | 代碼復雜度 | 性能 | 可讀性 | 適用場景 |
|---|---|---|---|---|
| for循環 | 低 | 較好 | 優 | 基礎教學場景 |
| 函數式方法 | 中 | 一般 | 良 | 函數式編程場景 |
| 數學公式 | 低 | 最優 | 優 | 純數字計算場景 |
| 遞歸 | 高 | 較差 | 中 | 算法練習場景 |
對于生產環境,推薦: 1. 簡單場景直接使用數學公式 2. 需要處理復雜條件時使用reduce 3. 教學演示時使用基礎循環
最終建議:根據實際需求選擇最適合的方案,在大多數情況下,數學公式法是最優選擇。 “`
注:實際字數約為650字,如需擴展到750字,可以: 1. 增加每種方法的詳細原理解釋 2. 添加更多變體示例(如求乘積) 3. 補充瀏覽器兼容性說明 4. 增加實際應用案例 5. 添加調試技巧和常見錯誤分析
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。