Swift生成奇数数组问题

Swift生成奇数数组问题,swift,Swift,我们给出了一个任务,创建一个swift函数,为给定数量的元素生成并返回一个奇数数组 如果生成元素5,则输出将为[1,3,5,7,9] 对于上面的任务,我们返回了下面不起作用的代码- import Foundation func generate(len: Int) -> [Int] { let count = len.count - 1 var oddArray = [Int]() for i in 0 ... count{ let val = le

我们给出了一个任务,创建一个swift函数,为给定数量的元素生成并返回一个奇数数组

如果生成元素5,则输出将为[1,3,5,7,9]

对于上面的任务,我们返回了下面不起作用的代码-

import Foundation
func generate(len: Int) -> [Int] {
    let count = len.count - 1
    var oddArray = [Int]()
    for i in 0 ... count{
        let val = len[i] % 2 
        if val != 0 {
            oddArray.append(len[i])
        }
    }
    return Array[oddArray]
}
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]!
FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil)
let fileHandle = FileHandle(forWritingAtPath: stdout)!
guard let len = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!)
else { fatalError("Bad input") }
let result = generate(len: len)
fileHandle.write(result.map{ String($0) }.joined(separator: "\n").data(using: .utf8)!)
fileHandle.write("\n".data(using: .utf8)!)
我们得到的错误如下-

解决方案.swift:5:17:错误:“Int”类型的值没有成员“count” 让计数=len.count-1

解决方案。swift:13:12:错误:实例成员“subscript”不能用于类型“Array” return Array[oddArray]

您可以使用创建一个奇数序列和数组来将其转换为数组:

func generate(len: Int) -> [Int] {
    guard len > 0 else { return [] }
    return Array(stride(from: 1, to: len * 2, by: 2))
}
示例:


为什么generate7应该返回[1,3,5,7,9]?它不应该是[1,3,5,7,9,11,13]7个元素吗?正确吗?它应该是[1,3,5,7,9,11,13]只:-var oddArray:[Int]=[]表示1中的值。[Int]{var oddArray=[Int]for i in 1..[Int]有什么错误吗{var set=set var result=inputArray中数字的数组{if set.containsnumber{continue}set.insertnumber result.appendnumber}返回结果}```
print(generate(len: 4))
[1, 3, 5, 7]
print(generate(len: 7))
[1, 3, 5, 7, 9, 11, 13]