【问题标题】:Sum of Printed For Loop in SwiftSwift 中打印的 For 循环的总和
【发布时间】:2023-03-30 11:25:01
【问题描述】:

对于一个项目,我正在尝试使用 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。

标签: swift swift3 swift-playground


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多