#Python, 147 bytes <!-- language: lang-python --> def r(s): n=str(eval(s));t="+" if "+" in s else "*" while len(n)!=1:exec("n=str(reduce(lambda a,b:a"+t+"b,[int(x) for x in list(n)]))") return n Will post an explanation soon. Input is in the form `12+12` or `5*35` (with normal `+` and `*` signs), and assumes that those are the only two operators. I'm almost certainly confident that this can be further golfed.