Swift 中打印的 For 循环的总和

Posted

技术标签:

【中文标题】Swift 中打印的 For 循环的总和【英文标题】:Sum of Printed For Loop in Swift 【发布时间】:2016-10-25 04:23:05 【问题描述】:

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

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

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

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

【问题讨论】:

作为人类,您将如何做这件事?描述过程。 您可以使用the += operator向变量添加数字。 其实结果应该是4668。 【参考方案1】:

简单介绍一下这个过程。首先,无论何时执行循环,您都需要一个可以保存总和值的变量。您可以定义 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)

【讨论】:

感谢您的演练!我的基础知识得到了提高。你是一个绅士和一个学者!【参考方案2】:

在 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)

【讨论】:

感谢您的回答,但请不要如此随意地给出答案。引导 OP 完成导致您实现这一目标的思考过程。 这个问题要求的是这些数字的 sum,而不是计数。【参考方案3】:

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

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

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

【讨论】:

我已经编辑了我的答案。你能删除否决票吗? 太棒了!但对对不起投反对票的不是我。我的 com 仅用于审核目的【参考方案4】:

你只需要在下面总结我喜欢的结果

 var sum = 0

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

      sum = sum + i
      print(i) 
    
 

现在 sum 包含值的总和

【讨论】:

【参考方案5】:

试试这个:

var sum = 0
for i in 0...10000 
    if i % 3 == 0 || i % 5 == 0  
        sum = sum + i
        print(i) 
    
 
print(sum)

【讨论】:

需要 var 而不是 let。 sum += i 也更可取【参考方案6】:

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

var sum = 0
for i in 0...10000 
    if i % 3 == 0 || i % 5 == 0  
        sum += i
        print(i)
    
 
print(sum)

【讨论】:

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

不能在 swift 中使用 for...in 或 forEach 循环来快速打印视图

Swift 3:如何使用 for 循环来循环数组

为啥这个 Swift Playground 打印和循环两次?

在 for 循环中添加整数并打印总数

swift for循环数据顺序不正确

如何在swift中使用for循环以编程方式创建按钮