0
点赞
收藏
分享

微信扫一扫

微软100题21题(要求将其中所有的可能组合列出来)

无愠色 2022-07-28 阅读 54



scala版本


package ms

import scala.collection.mutable.ListBuffer
/**
* 第21题(数组)
2010年中兴面试题
编程求解:
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来.
*/
class ExtractSum{
var result:ListBuffer[Int]=ListBuffer[Int]()

def compute(s:Int,n:Int):Unit={
var sum=s;
var num=n;
if(sum==0){
for(r<-result)
print(r+",")
println()

}
if(num>sum){
num=sum;
}
if(num<=0){
return;
}

result.append(num)
compute(sum-num,num-1)

if(result.length>0){
result.remove(result.length-1)
compute(sum,num-1)
}
}

}
object MicroSoft021 {
def main(args: Array[String]): Unit = {
val c=new ExtractSum();
c.compute(10,6)
}

}

 


python版本

举报

相关推荐

0 条评论