Быстрое подсчет потока управления с кратными - PullRequest
0 голосов
/ 20 октября 2018

Напишите функцию, которая печатает числа от 1 до 100. Но для кратных трех выведите «x» вместо числа и для кратных пяти выведите «y».Для чисел, которые являются кратными как трех, так и пяти, выведите «z».

Мне задали этот вопрос, как студенту, и у меня возникли проблемы при попытке выяснить, как переключить кратные числа с соответствующих слов.в этом смысле я поставил «x, y и z».

Я могу сделать функцию равной 100, но не знаю, как, прежде всего, нацелить мультипликаторы.После этого преобразуйте их в слова вместо цифр.Это то, что у меня есть до сих пор.

func count (от: Int, до: Int = 100) {для i in from ... до {print (i)}}

СпасибоЗа любую помощь заранее!Если вы также можете объяснить, почему он работает так, как он это делает, это будет с благодарностью!учимся еще!

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Обязательно прочитайте это сначала: https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html

Если вам просто нужно распечатать результаты:

for i in 1...100 {
    if i % 3 == 0 && i % 5 == 0 {
        print("z")
    } else if i % 3 == 0 {
        print("x")
    } else if i % 5 == 0 {
        print("y")
    } else {
        print("\(i)")
    }
}

или то же решение, но с переключателем:

for i in 1...100 {
    switch (i % 3 == 0, i % 5 == 0) {
    case (true, true): print("z")
    case (true, _): print("x")
    case (_, true):  print("y")
    default: print("\(i)")
    }
}
0 голосов
/ 20 октября 2018

Добро пожаловать на SO.Это разновидность "fizz buzz".

Для этого вы можете использовать функцию map().Вы должны сопоставить каждое число со строкой: числа, которые не являются «специальными», будут сопоставлены с их строковым эквивалентом, а числа, которые были «специальными», будут сопоставлены с их заменами.Оператор switch был бы хорошим способом выбора «специальных» чисел.

В качестве альтернативы вы можете использовать цикл for и многостраничный оператор if:

for number in 1...100 {
   //if statements
}

Вы можете определить, делится ли число на другое число, используя оператор по модулю (%): (number % 3 == верно, если число делится на 3.)

Это не служба написания кода.Посмотрим, сможешь ли ты решить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...