Swift中的Loop for Loop总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift中的Loop for Loop总和相关的知识,希望对你有一定的参考价值。

对于一个项目,我试图使用Swift找到低于10,000的3和5的倍数之和。插入NoobJokes。

使用For循环打印3和5的倍数相当容易,但我想知道如何...“总结”我打印的所有项目。

for i in 0...10000 {
    if i % 3 == 0 || i % 5 == 0 { 
        print(i) 
    }
} 

(打印出468个单独的数字;它们如何相加?)

答案

稍微了解一下这个过程。首先,每当循环执行时,您将需要一个可以保存总和值的变量。您可以定义optional variable of type Int或使用与第一行中相同的默认值对其进行初始化。每次循环执行时,imultiple of 3 or 5将被添加到totalSum中,并且在最后一次迭代之后你将得到你的结果。

var totalSum = 0
for i in 0...10000 {
if i % 3 == 0 || i % 5 == 0
{
    print(i)
    totalSum = totalSum + i
}
}
print (totalSum)
另一答案

在Swift中你可以在没有重复循环的情况下完成它:

let numberOfDivisiblesBy3And5 = (0...10000).filter{ $0 % 3 == 0 || $0 % 5 == 0 }.count

或者获得项目的总和:

let sumOfDivisiblesBy3And5 = (0...10000).filter{ $0 % 3 == 0 || $0 % 5 == 0 }.reduce(0, {$0 + $1})
另一答案

你只需要将结果总和如下所示

 var sum = 0

 for i in 0...10000 {
    if i % 3 == 0 || i % 5 == 0 { 

      sum = sum + i
      print(i) 
    }
} 

现在sum包含值的总和

另一答案

试试这个:

var sum = 0
for i in 0...10000 {
    if i % 3 == 0 || i % 5 == 0 { 
        sum = sum + i
        print(i) 
    }
} 
print(sum)
另一答案

在底线,这应该是有效的。

var sum = 0
for i in 0...10000 {
    if i % 3 == 0 || i % 5 == 0 { 
        sum += i
        print(i)
    }
} 
print(sum)
另一答案

range:指定要操作的操作的数字范围。

这里我们使用filter方法过滤出3和5的倍数,然后对过滤后的值求和。 (减少(0,+)完成工作)

let sum = (3...n).filter({($0 % 3) * ($0 % 5) == 0}).reduce(0,+)

以上是关于Swift中的Loop for Loop总和的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Kotlin 编译报错 ( Not nullable value required to call an ‘iterator()‘ method on for-loop range )(代码片

swift [语言:Swift,语法:for-in-loop]

swift [语言:Swift,语法:for-index-loop]

for loop Swift iOS的退出迭代

尽管包含更多条目,但数组仅在 for-loop 之后向 Struct 添加单个条目 - Swift/Xcode

我想将'for-loop'的结果保存为python中的文本文件