关注
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-23 23:21
摄影/摄像 点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛友的五一计划 #
12005次浏览 271人参与
# 如何看待offer收割机的行为 #
193083次浏览 2973人参与
# 牛客帮帮团来啦!有问必答 #
393293次浏览 7764人参与
# 晒一晒我的offer #
2816403次浏览 49851人参与
# 无实习如何秋招上岸 #
171916次浏览 2713人参与
# 如何一边实习一边秋招 #
200592次浏览 3986人参与
# 春招别灰心,我们一人来一句鼓励 #
20894次浏览 304人参与
# 非技术岗薪资爆料 #
7904次浏览 152人参与
# 硬件人的春招flag #
14507次浏览 199人参与
# 在国企工作的人,躺平了吗? #
72466次浏览 877人参与
# 来聊聊机械薪资天花板是哪家 #
22184次浏览 175人参与
# 机械人,你的秋招第一份简历被谁挂了 #
26890次浏览 491人参与
# 第一次面试 #
16455次浏览 247人参与
# 你更愿意参加线上面试还是线下面试? #
6812次浏览 94人参与
# 女生做医疗销售有前景吗 #
3822次浏览 48人参与
# 华为求职进展汇总 #
440893次浏览 4428人参与
# 简历中的项目经历要怎么写 #
380094次浏览 6388人参与
# 通信硬件薪资爆料 #
147252次浏览 1115人参与
# 产品实习,你更倾向大公司or小公司 #
31161次浏览 489人参与
# 机械人的薪资开到多少,才适合去? #
45003次浏览 269人参与