【プログラミング初心者】Swift練習問題~繰り返し2~


練習問題

練習問題1−1

引数に与えられた少数型の配列の合計値を求める関数sumを作成してください。

func sum(of values: [Double]) -> Double {
    ...
}

回答例はこちら

練習問題1−2

引数に与えられた少数型の配列の平均値を求める関数averageを作成してください。
※配列の要素数が0の場合はnilを返してください。

func average(of values: [Double]) -> Double? {
    ...
}

回答例はこちら

練習問題2

引数に与えられた整数型の配列の中から最大値を返すmax関数を作成してください。
※配列の要素数が0の場合はnilを返してください。

func max(of values: [Int]) -> Int? {
    ...
}

回答例はこちら

応用問題

応用問題1

第一引数に整数配列を渡し、第二引数に整数を渡すと、整数配列の中から足したら第二引数の整数となる2つの整数を返す関数twoSumsを作成してください。
組み合わせが見つからない場合は空の配列を返してください。
配列の先頭から検索し、解が2つ以上見つかる場合は先に見つかった組を返してください。

func twoSums(from values: [Int], target: Int) -> [Int] {
    ...
}

let values = [3, 2, 9, 1, 10]

let result1 = twoSums(from: values, target: 11)
print("result1: \(result1)")
let result2 = twoSums(from: values, target: 8)
print("result2: \(result2)")
実行結果
result1: [2, 9]
result2: []

上記result1は[2, 9]と[1, 10]がありますが[2, 9]が先に見つかるためこちらを返します。

回答例はこちら

応用問題2

引数に与えた数字の範囲内の素数を全て配列として返す関数getPrimeNumbersを作成してください。
※素数とは、1 より大きい正の整数で、正の約数が 1 と自分自身のみであるもののこと

func getPrimeNumbers(limit: Int) -> [Int] {
    var primeNumbers: [Int] = []

    ...

    return primeNumbers
}

print(getPrimeNumbers(limit: 100))
実行結果
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

【補足】
配列への要素の追加はprimeNumbers.append(数字)でできます。
例)primeNumbers.append(10)

回答例はこちら

最後に

別の問題は以下に掲載しています。
また本記事とは別でプログラミング未経験からiOSアプリ開発が行えるようになることを目的とした記事を連載しています。
連載も以下にまとめていますのでそちらも是非もご覧ください。
http://naoyalog.com/