为什么在Euler项目期间我的阵列可以打印数百次?

时间:2018-07-21 00:21:46

标签: arrays swift

我正在找到3和5的所有倍数之和,直到1000都能正确打印。我也在尝试打印整个数组。我的附加和打印数组行使它为每个附加项目打印467次,即打印的第一个数组是[3],然后是[3,5],然后是[3,5,6],直到[3,5,6,.。 。,1000]。如何解决此问题,以便仅打印[3,5,6,...,1000]?

var startAtZero = 0
var numberArray = [Int]()

for number in 1...1000 {
    if number % 3 == 0 || number % 5 == 0 {
        startAtZero += number
        numberArray.append(contentsOf: [number])
        print(numberArray)
    }
}

print(startAtZero)

1 个答案:

答案 0 :(得分:0)

代替这个

print(numberArray)

print(number)

//

根据您的要求应该是

for number in 1...1000 {
    if number % 3 == 0 || number % 5 == 0 {
        startAtZero += number
        numberArray.append(number)
         if i == 1000 {
             print(numberArray)
         }
    }
}

print(startAtZero)

//

等效并具有更好的性能

for number in 1...1000 {
    if number % 3 == 0 || number % 5 == 0 {
        startAtZero += number
        numberArray.append(number)
     }
}

print(numberArray)
print(startAtZero)