使用Scala输出所有的三位水仙花数
时间: 2023-05-30 14:08:00 浏览: 472
水仙花数是指一个三位数各个位上数字的立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是使用Scala输出所有的三位水仙花数的代码:
```scala
for (i <- 100 to 999) {
val digit1 = i / 100
val digit2 = (i / 10) % 10
val digit3 = i % 10
if (i == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3) {
println(i)
}
}
```
输出结果为:
```
153
370
371
407
```
相关问题
scala判断一个三位数是否是水仙花数
在Scala中,可以使用以下代码来判断一个三位数是否是水仙花数:
```scala
def isArmstrongNumber(num: Int): Boolean = {
val digits = num.toString.map(_.asDigit)
val sum = digits.map(d => math.pow(d, 3)).sum
sum == num
}
val number = 153 // 要判断的三位数
val isArmstrong = isArmstrongNumber(number)
println(s"$number 是否是水仙花数: $isArmstrong")
```
上述代码中,我们定义了一个`isArmstrongNumber`函数,该函数接受一个整数作为参数,并返回一个布尔值表示该数是否是水仙花数。函数内部首先将数字转换为字符串,并将每个数字转换为整数。然后,我们计算每个数字的立方和,并将其与原始数字进行比较。如果两者相等,则返回`true`,否则返回`false`。
在主程序中,我们定义了一个要判断的三位数`number`,然后调用`isArmstrongNumber`函数来判断该数是否是水仙花数,并将结果打印出来。
scala编写水仙花数
下面是使用 Scala 编写的水仙花数程序:
```scalaobject NarcissisticNumber {
def main(args: Array[String]): Unit = {
val n = 3 // 水仙花数的位数
(i <- math.pow(, n - 1).toInt until math.pow(, n).toInt) {
val sum = i.toString.map(c => math.pow(c.asDigit, n).toInt).sum
if (sum == i) println(i)
}
}
}
```
在这个程序中,我们使用了 Scala 的 map、sum 等函数式编程特性,将水仙花数的计算过程写得更加简洁和优雅。值得注意的是,我们使用了 `math.pow` 函数来计算数字的幂次方,以及 `c.asDigit` 来将字符转换为数字。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)