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
或使用与我在第一行中所做的默认值相同的默认值对其进行初始化。每次循环执行时,i
即 multiple 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 循环来快速打印视图