Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.10 KB | None | 0 0
  1. private def subtraction(v1: String, v2: String): String = {
  2.     var number = v2.toCharArray.map(_.asDigit)
  3.     var thisNumber = v1.toCharArray.map(_.asDigit)
  4.     var result = ListBuffer[Int]()
  5.     var negative = false
  6.  
  7.     if(number.length > thisNumber.length || number.length == thisNumber.length && number(0) > thisNumber(0)) {
  8.       negative = true
  9.       var tmp = thisNumber
  10.       thisNumber = number
  11.       number = tmp
  12.     }
  13.  
  14.     val sup: Int => Unit = (i: Int) => {
  15.       thisNumber(i) match {
  16.         case j if j > 0 =>
  17.           thisNumber.update(i, j-1)
  18.         case _ =>
  19.           thisNumber.update(i, 9)
  20.           sup(i-1)
  21.       }
  22.     }
  23.  
  24.     val minus = (i: Int, j: Int) => {
  25.       val res = thisNumber(i) - number(j)
  26.       res match {
  27.         case t if t >= 0 => thisNumber.update(i, t)
  28.         case _ =>
  29.           sup(i-1)
  30.           thisNumber.update(i, res + 10)
  31.       }
  32.     }
  33.  
  34.     for(i <- 0 until Math.min(thisNumber.length, number.length)) {
  35.       minus(thisNumber.length - i - 1, number.length - i - 1)
  36.     }
  37.     clear((if(negative)"-") + thisNumber.mkString("","",""))
  38.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement