Skip to content

Instantly share code, notes, and snippets.

@iizukak
Forked from mizchi/hello.scala
Created March 9, 2012 13:00
Show Gist options
  • Save iizukak/2006435 to your computer and use it in GitHub Desktop.
Save iizukak/2006435 to your computer and use it in GitHub Desktop.
// 太郎と花子はそれぞれカードを何枚か持っている. 各カードには点数が書かれている.
// 太郎のカードと花子のカードを 1 枚ずつ交換して, それぞれの持つカードの合計点数が等しくなるようにしたい.
// どのカードとどのカードを交換したらよいか.
// ただし,カードを交換しなくても合計点数が等しい場合でも, 必ずカードの交換を行うものとする.
object HelloWorld {
def sum(list:List[Int]):Int = list match{
case n if list.size == 0 => 0
case n if list.size > 0 => list.head+sum(list.tail)
}
def mkeqsum(arr1:List[Int], arr2:List[Int]):(Int, Int) = {
val d = sum(arr1)-sum(arr2)
for(i<-arr1;j<-arr2) if(d==2*(i-j)) return (i, j)
(-1, -1)
}
def main(args: Array[String]) {
println("Hello, world!")
val arr1 = List(3, 4, 5, 9)
val arr2 = List(2, 5, 7, 8)
println(mkeqsum(arr1, arr2))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment