Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вот такое задание, но я только в начале пути вэб разработки, подскажите как? (https://javascript.ru/forum/misc/75499-vot-takoe-zadanie-no-ya-tolko-v-nachale-puti-vehb-razrabotki-podskazhite-kak.html)

Задорожный Виталий 19.10.2018 18:45

Да наверно мне еще рано такие задачи. Ничего я так и не понял. В моем понимании последовательность натуральных чисел это 0,1,2,3,4,5,6,7,8...
т.е. вводим количество 100, раскладываем в последовательность из них находим кратные 6 и их сумму. Причем здесь 300?
Или вводим 300 и так далее. Что такое введенные? Как связать количество элементов массива с элементами массива. в готовом скрипте? Пока писал начинаю вроде понимать. Элементы массива в сумме не должны превышать 300? Тогда все сходиться, а количество чисел и введенные мы вводим произвольно и непосредственно в программу. Так?

Задорожный Виталий 19.10.2018 18:54

Введенные числа в сумме не превышают 300? Тогда все сходится. В задаче не хватает слова в сумме!!! И я подумал что последовательность натуральных чисел это 1,2,3,4,5,6,7...... , а их можно произвольно. Так?

Nexus 20.10.2018 09:40

Задорожный Виталий, как я понял из условия задачи: 100 - максимальный размер массива, а 300 - максимальное значение элемента массива.

Задорожный Виталий 20.10.2018 17:14

Доброго времени суток еще раз. В итоге трех дней головоломок, с Вашей помощью решил вот так:
var summ = 0;
var arr = new Array ();
for ( var i=1; i<101; i++){
    arr[i] = i*3; 
if (arr[i] % 6) continue; 
    summ += arr[i];
    }
    document.write (summ + "</br>");

Пишу на чистом js тк библиотек пока не знаю. Может что то не так проверите пож-та.
Программа получает числа до 100 в цикле, мы можем изменять количество чисел. Введенные числа ограничиваем до 300 умножением на 3 и так получаем кратные 6. Дальше суммируем получившийся массив. Как Вам?

MC-XOBAHCK 20.10.2018 22:22

Цитата:

Сообщение от Nexus
как я понял из условия задачи: 100 - максимальный размер массива, а 300 - максимальное значение элемента массива.

я понял только то, что условие задачи не корректно. Тот кто её задал - идиЁт.
Главная задача в этой задаче понять чего имел в виду тот идиёт когда фразировал свой тренинг.

Задорожный Виталий 20.10.2018 23:18

Понял спасибо. Пойду как есть. Через неделю выложу его решение. Всем большое спасибо.

рони 20.10.2018 23:27

Цитата:

Сообщение от MC-XOBAHCK
условие задачи не корректно

почему?

MC-XOBAHCK 21.10.2018 02:02

Цитата:

Сообщение от рони
почему?

Нужно обучать код писать, а не фразеологические ребусы разгадывать.

Вот решение:
function summa6(n, arr) {
    if (arr.length <= 100) {
        let arr6 = arr.filter(item => !(item % 6) && item <= 300);
        arr6.length = n;
    
        return arr6.reduce((sum, item) => sum + item);
    }
}
console.log(summa6(10, [1, 2, 3, 4, 5, 6, 7, 12, 24, 54, 300, 350, 1014]));


Интересно, прокатит или по условию нужно ещё проверять массив на кратность?
Я понимаю так, что у того лектора в массиве уже имеется число кратное 6.
Цитата:

В последовательности всегда имеется число кратное 6.
Или всё таки не имеется, а должно быть кратное 6?
Если не имеется, то разбить ему лицо и в код добавить проверку чтоб в массиве было кратное 6.

Задорожный Виталий 21.10.2018 07:42

Интересный код. Я его понял так - Объявляем функцию и глобальные переменные(включая массив), в функции длина массива меньше либо равно 100. Далее внутри условия локальная переменная сортирует числа кратные 6 и меньше либо равно 300. Присваиваем локальную переменную к глобальной. Завершаем функцию и суммируем перебор. За функцией выводим результат. ГЕНИАЛЬНО!!! Много нового узнал! Один вопрос по последней строчке кода. Откуда цифра 10. В квадратных понятно - это массив и я так понял произвольно набранный.
Огромное спасибо!

Nexus 21.10.2018 10:50

Цитата:

Сообщение от Задорожный Виталий
Один вопрос по последней строчке кода. Откуда цифра 10.

Это нужная длинна массива.


Часовой пояс GMT +3, время: 13:55.