ოპტიმალური ალგორითმის არჩევა 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-მდე.