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))                           }
点赞 评论

相关推荐

渐好:软光栅真的写明白了吗,既然是软渲那技术栈不应该使用OpenGL,光追和bvh既不算什么高级渲染技术更不应该属于软渲的内容,git那个项目没啥用,建议把前两个项目重新组织一下语言,比如软渲染那个项目 冯着色和msaa、贴图这几项分开写,写的到位点,如果你还学过光追那就单独写出来,如果没把握考官问你答不上来就别写给自己找麻烦,在技术栈那一栏简单提一下自己学过就行,这样杂的放在一起不太严谨,个人愚见.
点赞 评论 收藏
分享
牛客网
牛客企业服务