Menu
Coddy logo textTech

Metody zakresów

Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 9 z 56.

Zakresy są prawdziwymi Collection, więc mają ten sam zestaw narzędzi, którego używasz w przypadku tablic.

contains, count, first i last działają bezpośrednio:

let r = 1...10
print(r.contains(5))            // true
print(r.count)                  // 10
print(r.first!, r.last!)        // 1 10

Większość używanych przez Ciebie metod tablic również działa. filter zwraca tablicę, ponieważ wynik filtrowania zakresu sam w sobie nie jest zakresem:

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)                    // [2, 4, 6, 8, 10]

Tak samo jest z reduce: zakresy mają tę metodę, a ty będziesz z niej korzystać do szybkiego obliczania sum i iloczynów.

challenge icon

Wyzwanie

Łatwy

Wczytaj dwie liczby całkowite (dwa wiersze): n i target. Potraktuj przedział domknięty 1...n jako swój zbiór danych.

Wypisz trzy wiersze:

  1. true, gdy target należy do przedziału, w przeciwnym razie false
  2. Iloczyn wszystkich wartości w przedziale (n!: silnia). Użyj reduce.
  3. Wartości z przedziału, które są wielokrotnościami 3, połączone za pomocą , (lub pusty wiersz, jeśli żadna wartość nie spełnia warunku). Użyj filter.

Dla wejścia 5 / 3 wynikiem jest:

true
120
3

Spróbuj swoich sił

let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n

// TODO: contains(target), iloczyn za pomocą reduce, wielokrotności 3 za pomocą filter
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Edytor online Swift