import scala.collection.mutable.ArrayBuffer
object ShuiXianHua {
/**
* 水仙花数:153=1^3+5^3+3^3
*整数=个位数*总位数 + 十位数*总位数 + 百位数*总位数
*/
def main(args: Array[String]): Unit = {
//方法一
for (x <- 100 to 999){
//定义数组:累计各位数
val arr =ArrayBuffer[Int]()
var t=x
//遍历出各位数
while (t>0){
arr +=t%10
//println("arr:"+arr)
t=t/10
//println("t:"+t)
}
//math.pow:求取i的多少次方;sum获取总和
if (arr.map(i=> math.pow(i,arr.length)).sum==x){
println(x)
}
}
//方法二
println()
for(a<-100 until 1000){
val b = a/100%10
val s = a/10%10
val g =a%10
var sum=b*b*b + s*s*s + g*g*g
if(sum==a){
println("当前的水仙花数是:"+a)
}
}
}
}
Scala 求水仙花数的两种方法
最新推荐文章于 2024-05-29 15:07:30 发布