All pastes #67472 Raw Edit

/Calc

public text v1 · immutable
#67472 ·published 2006-06-20 01:07 UTC
rendered paste body
alias fcalc {
  if ($chr(58) !isin $1-) { return }

  var %num $1-
  var %math $2
  var %pos $pos(%num,$(%math,2))

  var %side.1 = $remove($left(%num,%pos),$(%math,2))
  var %side.2 = $right(%num,$+(-,%pos))

  var %x 2
  while (%x) {
    set $+(%,len.,%x) $calc($count($($+(%,side.,%x),2),$chr(58)) + 1)
    dec %x
  }

  if (%len.1 == %len.2) {
    var %y 1
    var %x %len.1
    while (%y <= 2) {
      while (%x) {
        set $+(%,cs,%y,.,%x) $gettok($($+(%,side.,%y),2),$(%x,2),58)
        dec %x 1
      }
      inc %y 1
      var %x %len.1
    }
    var %x %len.1
    while (%x) {
      var %c = $calc($($+(%,cs1.,%x),2) %math $($+(%,cs2.,%x),2))
      set %ans $+($chr(58),%c,%ans)
      dec %x 1
    }
  }

  echo -a Num: %num Ans: $right(%ans,-1)

  unset %len.*
  unset %calc.*
  unset %cs*
  unset %ans
}