2016-10-19 31 views
-2

我是一個新手與swift,並希望創建一個方法,將採取一個整數作爲其參數,並使用fencepost循環打印該數字的因素。 這應該由單詞「和」分開。swift代碼的應用程序將整數轉換成因子

例如,呼叫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

你的Swift代碼在哪裏?將Java代碼翻譯成Swift是很簡單的。這不是免費的代碼翻譯服務。請先嚐試自己的嘗試。用你試過的東西更新你的問題,並解釋你使用Swift代碼時遇到的問題。 – rmaddy

+0

我剛纔說我是新手,並不完全熟悉它。沒有;堆棧不是免費的代碼翻譯服務;但它是一種學習工具。每個人都學習不同,我想看到解決方案;尤其是對那些無害的東西。我沒有反饋的觀點,因爲它純粹是主觀的。 – 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 

希望這有助於!