2016-10-19 5 views
-2

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

Например, printFactors вызова (24) должен печатать следующий вывод: 1 и 2 и 3 и 4 и 6 и 8 и 12 и 24

После мышления; я понимаю, как это сделать за пределами быстрого языка; но нужна помощь в этом быстро.

Вот что я сделал, прежде чем рассматривать быстрый язык.

public void printFactors(int n) { 
    for (int i=1; i <=n; i++) { 
     if (n % i == 0) { 
     if (i == 1) { 
      System.out.print(i); 
     } 
     else { 
      System.out.print(" and " + i); 
     } 
     } 
    } 
} 

Справка с благодарностью. Также как я возьму «решение» и выведу его как на этикетке? я бы установил решение для var?

+3

Где ваш быстрый код? Тривиально перевести этот Java-код в Swift. Это не бесплатный сервис перевода кода. Сначала сделайте свою попытку. Обновите свой вопрос с помощью того, что вы попробовали, и объясните, что у вас есть с кодом Swift. – rmaddy

+0

Я только что сказал, что я был новичком и не совсем знаком с ним. Нет; stack не является бесплатной услугой перевода кода; но это инструмент обучения. Каждый учится по-другому, и я хотел увидеть решение; особенно к чему-то настолько безобидному. Я не говорю об этом, потому что это чисто субъективно. – leahyjwilliam

+2

Вам нужно нажать на ссылку справки выше и прочитать раздел о задании вопросов. – rmaddy

ответ

0
func printFactors(n: Int) { 
    var result: String = "" 
    for i in 1...n { 
    guard n % i == 0 else {continue} 
    result += i == 1 ? "1" : " and \(i)" 
    } 
    print(result) 
} 

printFactors(24) 
0

Я согласен с @rmaddy в том, что Stack Overflow - это не бесплатный перевод кода. Тем не менее, я уже случался иметь аналогичный код под руку, что только необходимые небольшие изменения:

func factor(number: Int) -> String { 
    var string = "" 
    for i in 1...number { 
     if number % i == 0 { 
      if i == 1 { 
       string += "\(i)" 
      } else { 
       string += "and \(i)" 
      } 
     } 
    } 
    return string 
} 

Применения:

let output = factor(number: 24) 
print(output) // 1 and 2 and 3 and 4 and 6 and 8 and 12 and 24 

Или с метким:

let outputText = factor(number: 24) 
label.text = outputText 

Надеется, что это помогает!