可否用Scala定义一个sum函数呢?返回指定区间的值的和?例如,区间[1,4]的和为1+2+3+4=10 返回指定区间值的平方的和呢?立方呢?
时间: 2023-05-26 18:03:20 浏览: 169
Scala基础(8)函数定义
可以用Scala定义一个sum函数,实现返回指定区间的值的和。例如:
```scala
def sum(start: Int, end: Int): Int = {
var total = 0
for (i <- start to end) {
total += i
}
return total
}
```
使用方式:
```scala
sum(1, 4) //返回10
```
可以实现返回指定区间值的平方的和和立方的和,例如:
```scala
def sumOfSquares(start: Int, end: Int): Int = {
var total = 0
for (i <- start to end) {
total += i * i
}
return total
}
def sumOfCubes(start: Int, end: Int): Int = {
var total = 0
for (i <- start to end) {
total += i * i * i
}
return total
}
```
使用方式:
```scala
sumOfSquares(1, 4) //返回30
sumOfCubes(1, 4) //返回100
```
除了使用循环来实现,也可以使用高阶函数来实现,例如:
```scala
def sum(start: Int, end: Int, f: Int => Int): Int = {
if (start > end) return 0
else return f(start) + sum(start + 1, end, f)
}
def square(x: Int): Int = x * x
def cube(x: Int): Int = x * x * x
```
使用方式:
```scala
sum(1, 4, x => x) //返回10
sum(1, 4, square) //返回30
sum(1, 4, cube) //返回100
```
阅读全文