首页 > 解决方案 > Scala for循环计算幂和

问题描述

我对 Scala 非常陌生,并且正在尝试创建一个循环,该循环将在(1^1 + 2^2 + ... + 10^10)不使用指数运算符的情况下计算幂和。

我发现1^1通过9^9正确计算。但由于某种原因10^101410065409在我当前的代码中计算结果并弄乱了我的最终输出。是什么导致了这个数学错误?

我目前的代码是:

var i = 1 
var ex = 1
var sum = 0 

while (i <= 10) 
{
   for (j <- 1 to i) 
   {
      ex = ex * i 
   }

   sum += ex
   ex = 1
   i += 1
}

println(s"The sum is $sum")

标签: scala

解决方案


以下是它在 Scala 中的实现方式。

List.tabulate(10)(n => List.fill(n+1)(n.toLong+1).product).sum
//res0: Long = 10405071317

推荐阅读