关注
object Main extends App{
val
num = 291
//转换为2进制
def toBin(number: Int, bin: List[Int]): List[Int] =
number match {
case
0 => bin
case _ => toBin(number/2,
number%2::bin)
}
//记录二进制中1的位置
def Ones(bin: List[Int], index: Int, result: List[Int]):
List[Int] = bin match {
case Nil => result
case
x::y => if (x
== 0) Ones(y,index-1,result)
else
Ones(y,index-1,result:+index)
}
//转换函数
def change(number: Int): String = number
match {
case
x
if(x<=2) =>
"2(" + x + ")+"
case _ => "2(" +
Ones(toBin(number,Nil),toBin(number,Nil).length-
1
,Nil)
.map { x=>
change(x)}.reduceRight(_+_).dropRight(1) +
")+"
}
println(change(
num
).dropRight(1))
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
04-04 02:42
重庆大学 游戏后端 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
76719次浏览 1073人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
21537次浏览 148人参与
# 京东TGT #
55508次浏览 188人参与
# 上班到公司第一件事做什么? #
42027次浏览 387人参与
# 硬件人的简历怎么写 #
258778次浏览 2904人参与
# 求职季如何保持心态不崩 #
108849次浏览 890人参与
# 找工作的破防时刻 #
3280次浏览 41人参与
# 工作时那些社死瞬间 #
27172次浏览 199人参与
# 拼多多工作体验 #
18784次浏览 153人参与
# 互联网行业现在还值得去吗 #
8297次浏览 42人参与
# 技术转行的心路历程 #
49413次浏览 665人参与
# 选完offer后,你后悔学本专业吗 #
39763次浏览 219人参与
# 你觉得技术面多长时间合理? #
88195次浏览 647人参与
# 国企和大厂硬件兄弟怎么选? #
121916次浏览 1657人参与
# 你遇到过哪些神仙同事 #
76567次浏览 668人参与
# 安利/避雷我的专业 #
68030次浏览 499人参与
# 面试经验谈 #
53319次浏览 850人参与
# 实习生应该准时下班吗 #
204808次浏览 1330人参与
# 米哈游求职进展汇总 #
324158次浏览 2224人参与
# 面试吐槽bot #
19748次浏览 109人参与
# 工作一周年分享 #
21100次浏览 113人参与