Scala 输入1000以内的整数中,各位数对应的数值之和大于之积的数。并统计出满足这样条件的整数总共有多少个。例如:131,1+3+1大于1 * 3 * 1

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)

  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值