Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Gezerg
4 / 4 / 2
Регистрация: 01.12.2012
Сообщений: 39

Простенькая задача (одномерный массив)

14.09.2015, 18:12. Показов 716. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
У меня уже почти ночь, голова совсем не варит. Хочется завершить сегодня модуль, но застрял на одном месте.
Помогите, пожалуйста!

Дан одномерный массив, элементы идут в порядке возрастания. Не знаю как правильно объяснить задачку, поэтому приведу входные и выходные данные.

r = 4 - const;
[2,3,4,5,6] - true, т.к. элементов > r, и шаг = 1
[1,2,3,4,5,6, 11,12,13,14,15] - true, т.к. (11 - 6 = 5 (5 > r) && [1,2,3,4,5].length > r && [6,11,12,13,14,15].length > r);
[2,3] - false, т.к. длина < r;
[1,2,4,5,6] - false, т.к. 4 - 2 < r;
[101,102,103,104,105,106, 130,131,132,133,134, 204,205,206,207,208] - true

Добавлено через 38 минут
Всем спасибо. Я решил. Правда времени много потратил.
Кому интересно, вот решение:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function valid(m, r, s) {
    if(m.length < r) return false;
    for(var i = 1; i < m.length; i++) {
        if(!(m[i] - m[i-1] == s || m[i] - m[i-1] > r))
            return false;
    }
    return true;
}
function test() {
    var m = [
        [1,2,3,4,5,6],
        [1,2,3,5,6],
        [1,2,3,4,5,6,7,12,13,14,15,16],
        [1,2,3,4,5,6,7,12,13,14,15,16,19,20,22,23,24,25],
        [1,2,3,4,5,6,7,12,13,14,15,16,24,25,26,27,28,29,30],
        [4,5,1,3,5],
        [1,2],
        [5,6,9],
        [9,10,11,12,13,101,102,103,104,105,201,202,203,204,205,245,246,247,248,249,250,251]
    ];
    for(var i = 0; i < m.length; i++) {
        console.log(valid(m[i], 4, 1));
    }
}
Добавлено через 59 минут
Я ошибся. Массив может быть очень большим. Этот код правильно будет считать только первые элементы, до первого разрыва(например: [1,2,3,4,5,11,12] - будет true, а это не правильно, т.к. [11,12].length < r), поэтому без рекурсии не обойтись.
Вот окончательный правильный вариант:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function valids(m, r, s) {
    if(m.length < r) return false;
    for(var i = 1; i < m.length; i++) {
        if(!(m[i] - m[i-1] == s)) {
            if(m[i] - m[i-1] > r)
                return valids(m.slice(i), r, s);
            return false;
        }
    }
    return true;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.09.2015, 18:12
Ответы с готовыми решениями:

Простенькая задача
Не могу понять в чем ошибка. &lt;html&gt; &lt;head&gt; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot;&gt; &lt;script...

Простенькая задача по JS
Я что-то не пойму, как сделать этот код еще короче? for (i=1; i&lt;=20; i++){ if ((i%3)+(i%5) === 0){ var s =...

простенькая задача
вобщем сижу всю ночь никак не получается решить: на странице выводятся 12 квадратов 20 на 20 пикселей. в каждом квадрате наисанно...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2015, 18:12
Помогаю со студенческими работами здесь

Задача на двумерный массив: построить одномерный массив по правилу
Вообщем есть кусок задачи, который не могу решить. .... построить одномерный массив В, по правилу: если a&lt;0, то в качестве b...

Задача на одномерный массив
Здравствуйте, всё ещё не могу решить эту задачу. Помогите пожалуйста. Дана последовательность целых чисел а1, а2, … , аn. Указать пары...

Задача на одномерный массив
Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от -55 до 16. Вывести в порядке невозрастания...

Одномерный массив задача
Уважаемые профессионалы, не откажите в помощи. Задание: В заданном одномерном массиве поменять местами соседние элементы, стоящие на...

Задача на одномерный массив
Задан одномерный массив F(N) (N&lt;=60). Если последний элемент массива положителен, то все элементы массива увеличить на квадрат его ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru