在上一个判断手机号与身份证号码是否正确的基础上,改进代码,使任意一个整数具备计算阶乘的功能。
用隐式类计算阶乘
package imp
import scala.language.postfixOps
/*
目标:让任意一个整数具备一个功能:计算阶乘
n!=1*2*3*4*5*......*n
5!=1*2*3*4*5=120
* */
object imp06 {
implicit class StrongString(n:Int) {
def !(): Int = {
n match {
case num if num < 0 => -1 // 负数无阶乘
case 0 | 1 => 1 // 0!和1!都为1
case _ => (2 to n).product // 2到n的乘积(即阶乘)
}
}
}
def main(args: Array[String]): Unit = {
println(4!)//24
println(5!)//120
}
}
讲
package imp
import scala.language.postfixOps
/*
目标:让任意一个整数具备一个功能:计算阶乘
n!=1*2*3*4*5*......*n
5!=1*2*3*4*5=120
* */
object Imp06 {
implicit class StrongInt(n: Int) {
def ! : Int = {
var rst = 1
for (i <- 1 to n) {
rst *= i
}
rst
}
}
def main(args: Array[String]): Unit = {
println(4!)//24
println(5!)//120
}
}