'Karatsuba for dart (Recursion function)

import 'dart:math';

int karatsuba(x, y) {
  var n, m, a, b, c, d, p, q, ac, bd, pq, adcb;
  n = max(2, 2);
  m = (n ~/ 2);

  a = (x / pow(10, m)).floor(); // 56
  b = (x % pow(10, m)); // 78
  c = (y / pow(10, m)).floor(); // 12
  d = (y % pow(10, m)); // 34

  p = a + b;
  q = c + d;

  ac = karatsuba(a, c); // problem
  bd = karatsuba(b, d);
  pq = karatsuba(p, q);

  adcb = pq - ac - bd;

  return ac * (pow(10, n)) + adcb * (pow(10, m)) + bd;
}

void main() {
  karatsuba(12, 12);
}

ac = karatsuba(a, c) => here my problem. I don't understand why dart making endless loop for this. It is work for python but don't work from dart.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source