Вопрос для телепатов, что ли? Моло того, что в условии ошибка:
Если число в интервале 300-1000, то коэффициент = 1;
Если число в интервале 1001-2000, то коэффициент = 2;
Если число в интервале 2001-3000, то коэффициент = 3;
ввели 2800
1000+4000+2400
Так ещё нужно догадаться, что
у каких-то интервалов коэффициент может быть даже нулевым
Вот вариант с передачей верхних границ интервалов и коэффициентов:
function calc(n, ranges, factors) {
let res = 0;
let i = 0;
while (n > ranges[i]) res += (ranges[i] - (ranges[i - 1]||0)) * factors[i++];
return res > 0 ? res + (n - ranges[i - 1]) * (factors[i]||factors[i - 1]) : n * factors[i];
}
calc(2800, [1000, 2000, 3000], [1, 2, 3]); // 5400