自然数の分割
Posted feedbacks - Scala
とりえあず。
1 2 3 4 5 6 7 8 9 10 11 12 | def sumPatterns(n:int, m:int) = {
def sum(ns:List[int]) = (0 /: ns){_+_}
def cmp(a:List[int],b:List[int]):boolean = {
if(a.head == b.head) cmp(a.tail, b.tail)
else if(a.head > b.head) true
else false
}
((List(List[int]())) /: List.make(m, 0 to n)){
for(i <-_; j <-_) yield j::i
}.filter(sum(_) == n).sort(cmp _)
}
|



herumi
#4099()
Rating1/1=1.00
[ reply ]