Kotlin - используя функции Lambda Range, Map, Filter, Reduce / Fold, чтобы найти сумму всех чисел от 1 до 1000, которые делятся на 3 или 5. - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь использовать лямбда-функции, чтобы найти сумму чисел от 1 до 1000, которые делятся на 3 или 5. Я должен выполнить задачу в Котлине.

Пока все, что у меня есть:

fun divisibleByThreeOrFive () { 
}

Так что любая помощь будет принята с благодарностью.

1 Ответ

3 голосов
/ 13 марта 2019

Говоря о «числах от x до y », я вспоминаю класс IntRange. Вы можете использовать функцию rangeTo() для генерации вашего IntRange в удобочитаемом виде, или вы можете использовать синтаксис (x..y), чтобы сделать это, если хотите.

Говоря только о тех, которые «делятся на 3 или 5», я вспоминаю функцию filter(), которая принимает предикат.

Говоря о сумме этих чисел, я вспоминаю функцию sum().

Соберите все вместе, и вы получите:

val sum = 1.rangeTo(1000)
    .filter { it % 3 == 0 || it % 5 == 0 }
    .sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...