Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.05.2011, 18:43
Новичок на форуме
Отправить личное сообщение для Stillife Посмотреть профиль Найти все сообщения от Stillife
 
Регистрация: 18.05.2011
Сообщений: 1

Работа с последовательностью натуральных чисел
В общем вот вся задача:

Напечатать true, если элементы последовательности упорядочены по возростанию и false – по убиванию.
В последовательности натуральных чисел подсчитать количество тех, которые заканчиваются на заданную цифру.
В заданной последовательности определить максимальное число подряд идущих положительных чисел.
Найти сумму тех членов последовательности, которые оканчиваются на заданную цифру.
Найти сумму четных членов последовательности целых чисел.

2 последних пункта, думаю, что сама смогу сделать.

P.S. Прошу прощения, что засоряю этот форум, но я с js никогда не работала. И не собираюсь. А вот курсовую работу делать нужно. Честное слово, пыталась сама что-то сделать, но кроме автоматического генерирования массива (что элементарно) ничего толкового не вышло.
Буду очень признательна за помощь. Просто уже не знаю к кому обратиться.
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2011, 20:03
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

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) );
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение случайных чисел user1111 Общие вопросы Javascript 14 08.11.2010 22:06