Есть лестница высотой в n ступенек (плюс «нулевая» - площадка, где мы стоим вначале), на каждой ступеньке написано число (положительное или отрицательное). На стартовой площадке и на последней ступеньке - нули. Можно ступать либо на следующую ступеньку, либо перескакивать через одну. Напишите алгоритм, определяющий, как надо шагать, чтобы сумма чисел на пройденных ступеньках (тех, на которые мы ступали) была максимальна.
Задать количество ступенек:автоматическивручную
Количество ступенек указывается без учета стартовой и финальной («нулевых») площадок.
Минимальное количество ступенек
Максимальное количество ступенек
Точное количество ступенек
Числа на ступеньках (через запятую)
если поле заполнено, «количество» не учитывается
Числа на ступеньках
Предел значений чисел на ступеньках (по модулю)
например, при значении 100, числа распределяются в промежутке от -100 до 100
Чтобы протестировать ситуацию, когда на всех ступеньках одинаковые числа, выберите «Только положительные» числа с пределом «1» ( попробовать ).
// задаем переменные и начальные значения
var nMin = 2, // минимальное число ступенек
nMax = 100, // максимальное число ступенек
n = Math.round(Math.random()*nMax), // число ступенек
sMax = 100, // предел значений чисел на ступеньках по модулю
s = new Array(0), // числа на ступеньках (первое число "нуль" - стартовая площадка)
sign = [1,-1], // знак числа на ступеньке (положительное число или отрицательное)
N, // порядковый номер ступеньки
S = 0; // сумма чисел на ступеньках, куда мы ступаем
// если число ступенек меньше минимального, то генерируем его заново
while(n < nMin){n = Math.round(Math.random()*nMax);}
// генерируем числа на ступеньках
for(N=1;N<=n;N++){s[N] = sign[Math.round(Math.random())] * Math.round(Math.random()*sMax);}
// добавляем "ноль" ко всем числам (последняя ступенька/площадка)
s[n+1] = 0;
// теперь идем по ступенькам (подряд или через одну, в зависимости от условия)
for(N=0;N<=n;N++){
if(s[N+1] == s[N+2] || s[N+1] < s[N+2]){
S = S + s[N+2];
N++;
}else if(s[N+1] > s[N+2]){
S = S + s[N+1];
}
}