2016-10-19 5 views
-2

私は素早く初心者で、パラメータとして整数を取り、その数値の因子を出力するためにフェンスポストループを使用するメソッドを作成したいと考えました。 これは単語 "and"で区切る必要があります。例えば整数を因子に変換するスウィフトコード

、コール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

私はちょうど私が初心者であり、正確にそれに精通していないと言いました。いいえ。スタックは無料のコード翻訳サービスではありません。それは学習ツールです。誰もが違ったことを学び、解決策を見たいと思った。特に何かとても無害なものに。私は純粋に主観的なので、フィードバックのポイントはありません。 – 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に同意します。つまり、スタックオーバーフローは無料のコード変換ではありません。

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 

うまくいけば、このことができます!

関連する問題