Работа с последовательностью натуральных чисел
В общем вот вся задача:
Напечатать true, если элементы последовательности упорядочены по возростанию и false – по убиванию. В последовательности натуральных чисел подсчитать количество тех, которые заканчиваются на заданную цифру. В заданной последовательности определить максимальное число подряд идущих положительных чисел. Найти сумму тех членов последовательности, которые оканчиваются на заданную цифру. Найти сумму четных членов последовательности целых чисел. 2 последних пункта, думаю, что сама смогу сделать. P.S. Прошу прощения, что засоряю этот форум, но я с js никогда не работала. И не собираюсь. А вот курсовую работу делать нужно. Честное слово, пыталась сама что-то сделать, но кроме автоматического генерирования массива (что элементарно) ничего толкового не вышло. Буду очень признательна за помощь. Просто уже не знаю к кому обратиться. |
var arr1 = [ 2, 3, 5, 7, 7, 7, 8, 10 ]; // для sorted()
var arr2 = [ 14, 17, 12, 57, 27, 19, 97 ]; // для endsWith()
var arr3 = [ -2, 7, 3, -1, 1, 2, 3, -5 ]; // для consecPositive()
/*
Если массив отсортирован по возрастанию,
возвращается 1, по убыванию — -1, если
вообще не отсортирован, то 0.
*/
function sorted(A) {
var T = A[0] < A[1], N = false;
for (var i = 1; i < A.length - 1; i++) {
if ( T ? A[i] > A[i+1] : A[i] < A[i+1] ) {
N = true;
break;
}
}
return N ? 0 : T ? 1 : -1;
}
function endsWith(A, j) {
var k = 0;
for (var i = 0; i < A.length; i++)
if (A[i] % 10 === j)
++k;
return k;
}
function consecPositive(A) {
var max = 0, j = 0, F = false;
for (var i = 0; i < A.length; i++) {
if (!F && A[i] > 0) F = true, j = i;
if (F && A[i] < 0) {
if (i - j > max) max = i - j;
j = 0; F = false;
}
}
return max;
}
alert( sorted(arr1) );
alert( endsWith(arr2, 7) );
alert( consecPositive(arr3) );
|
| Часовой пояс GMT +3, время: 07:46. |