关注
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))
}
查看原帖
点赞 评论
相关推荐
10-31 10:21
大连理工大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
4023次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399889次浏览 13635人参与
# 实习没事做是福还是祸? #
4379次浏览 68人参与
# 重来一次,你会对开始求职的自己说 #
942次浏览 19人参与
# 2025年终总结 #
134637次浏览 2294人参与
# 考研人,我有话说 #
156616次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7081次浏览 32人参与
# 实习简历求拷打 #
24236次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29965次浏览 201人参与
# 携程工作体验 #
18958次浏览 66人参与
# 大厂VS公务员你怎么选 #
69148次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140190次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93729次浏览 1007人参与
# 那些我实习了才知道的事 #
253142次浏览 1785人参与
# 非技术投递记录 #
672964次浏览 6821人参与
# 机械求职避坑tips #
81094次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154994次浏览 829人参与
# 第一份工作能做外包吗? #
94079次浏览 599人参与
# 作业帮求职进展汇总 #
85508次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101273次浏览 416人参与