การเลือกอัลกอริทึมที่เหมาะสมที่สุดใน JavaScript

บางครั้งปัญหาของโค้ดอาจเกี่ยวข้องกับ การเลือกวิธีการแก้ไขปัญหาที่ไม่เหมาะสมที่สุด

สมมติว่ามีงานอยู่หน้าเรา คือหาผลรวมของจำนวนเต็มตั้งแต่ 1 ถึง 1000000 มาแก้ไขงานที่กำหนดให้:

javascriptlet sum = 0;

for (let i = 1; i <= 1000000; i++) {
  sum += i;
}
  
console.log(sum);

อะไรกันที่ไม่ถูกต้อง? ประเด็นคือสำหรับการแก้ไข งานที่กำหนดมานี้ มีวิธีแก้ทางคณิตศาสตร์ อยู่

วิธีแก้ไขนี้แทบไม่ต้องใช้ ทรัพยากรเลย! มาเขียนโปรแกรมกัน:

javascriptlet n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);

ข้อคิด: ก่อนการแก้ไขงานที่ใช้ทรัพยากรมาก ตรวจสอบให้แน่ใจเสมอว่ามีสูตรทางคณิตศาสตร์สำเร็จรูป หรือแนวทางทางคณิตศาสตร์สำเร็จรูปสำหรับการแก้ไขหรือไม่

Задание 1

จงหาจำนวนตัวเลขที่หารลงตัวโดยไม่มีเศษ ด้วย 5 จากช่วงตั้งแต่ 1 ถึง 1000

Задание 2

จงหาจำนวนหลักที่จำเป็น ในการเขียนตัวเลขทั้งหมดตั้งแต่ 1 ถึง 1000000