Scala 输入1000以内的整数中,各位数对应的数值之和大于之积的数。并统计出满足这样条件的整数总共有多少个。例如:131,1+3+1大于1* 3 *1
两种方法如下:
import scala.collection.mutable.ListBuffer
object WeekJob {
def main(args: Array[String]): Unit = {
//方法一
var num : Int=0
for (i <- 1 until 1000){
var s=i.toString
var list =s.toList
//println(list)
var sum=0;
var cj=1;
for (b<-list){
var c =b.toString
var d=c.toInt
//println(d)
sum+=d
cj *=d
}
if (sum>cj){
println(i)
num+=1
}
}
println("共有:"+num+"个")
//方法二
var count =0
var lb=ListBuffer[Int]()
for (i <- 1 until(1000)){
val bai = i/100%10
val shi = i/10%10
val ge =i%10
//十位数
if (bai == 0 && shi !=0){
if (shi + ge > shi * ge ){
count +=1
lb +=i
}
}else if (bai != 0){
//百位数
if (bai+shi +ge >bai * shi * ge){
count+=1
lb+=i
}
}
}
for (item <- lb){
println(item)
}
println("共:"+count)
}
}