JavaScriptда оптимал алгоритмни танлаш
Бaъзан коднинг муаммоси масалани ечиш учун энг оптимал йечим танланмагани билан боглик булади.
Фарз қилайлик, биздан 1 дан 1000000 гача булган
бутун сонларнинг йиғиндисини топиш талаб қилинсин.
Берилган масалани ечайлик:
let sum = 0;
for (let i = 1; i <= 1000000; i++) {
sum += i;
}
console.log(sum);
Нима нотугри? Гaп шундаки, берилган масалани ечиш учун математик йечим мавжуд.
Бу йечим деярли ресурс талаб қилмайди! Уни дастурлаймиз:
let n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);
Хулоса: ресурс талаб қиладиган масалани ечишдан олдин, уни ечиш учун тайёр математик формула ёки тайёр математик ёндашив мавжудлигини текшириб кўринг.
1 дан 1000 гача булган оралиқда
5 га қолдиқсиз бўлинадиган сонларнинг сонини топинг.
1 дан 1000000 гача булган барча сонларни
ёзиш учун сарфланадиган рақамларнинг умумий сонини топинг.