# How can my calculator do this?

I recently bought a calculator --- a basic one with these keys:

$\;$AC$\;\,$ %$\,$ sqrt
MRC M- M+$\;$ CE
$\;\;$7$\;\;\,$ $\;$8$\;$ $\;\,$9$\;\,$ $\;$÷$\;$
$\;\;$4$\;\;\,$ $\;$5$\;$ $\;\,$6$\;\,$ $\;$x$\;$
$\;\;$1$\;\;\,$ $\;$2$\;$ $\;\,$3$\;\,$ $\;$-$\;\,$
$\;\;$0$\;\;\,$ $\;$.$\;\,$ $\;\,$=$\;\,$ $\;$+$\;$

The MRC key serves as both Recall and Memory Clear. If you press it after a different key, it copies the memory's contents M into the display D. If you press it twice in a row, it does that then clears the memory.

AC puts 0 into D and clears any ongoing calculation there might have been, but leaves M intact.

Some examples of operations on this calculator, and their results. (AC is pressed before each, to clear any previous calculation.)

9+8x7= 119 (no BODMAS/PEDMAS here!)

4x9sqrt= 12

9+1= 10 4= 5

9-1= 8 4= 3

9x8= 72 7= 63

3x2== 18

6÷2= 3 14= 7

1+2= 3 += 5 += 8 += 13 += 21

9-1= 8 -= -7 -= 15 -= -22 -= 37

8-3=+= 8

8-3=-= -2 = -7

7+5% 7.35

7-5% 6.65

7*5% 0.35

7÷5% 140

MRCMRC9M+ 9 8x7M+ 56 MR 65

If you do two or more operator-key presses in a row, only the last one has any effect:

9x-7= 2

There are a couple of deficiencies in this calculator. For example, it has no "change sign" key. Any decent calculator will have a key (possibly marked +/- or (-) which changes the sign of D, leaving M unchanged.

And although it has M- and M+, it has no "store" key (possibly marked STO or M on other calculators). This would copy D into M, leaving D unchanged. Some calculators with memory even have an "exchange" function, which swaps the values of D and M.

So, on this calculator, in as few strokes as possible,

• How do you do "change sign"?
• How do you do "store"?
• How do you do "exchange"?
• Are you sure the 5th one's not <kbd>9</kbd><kbd>x</kbd><kbd>8</kbd><kbd>=</kbd> 72 <kbd>7</kbd><kbd>=</kbd> 56 ? That goes better with the 3rd, 4th, and 6th examples. – shoover Nov 5 '17 at 14:05
• Maybe it's this one? – EKons Nov 5 '17 at 15:04
• Last line is MRC rather than MR? Can you give an M- example too, please? – Dr Xorile Nov 5 '17 at 20:31
• Can you also add an example of changing operators after =? For example, what does 8-3=+= do? – boboquack Nov 6 '17 at 23:09
• Also, what would something like 3x2==do? – Jeff Zeitlin Nov 7 '17 at 3:09

## 3 Answers

• How do you do "change sign"?

-0-= (4 strokes)

Basically calculates $0-D=-D$

• How do you do "store"?

-MRCM+(MRC) (3 or 4 strokes)

Calculates $D-M$, then stores $M+(D-M)=D$

• How do you do "exchange"?

-0-M-+MRCM- (7 strokes)

Calculates $-D$, stores $M-(-D)=M+D$, then calculates $-D+(M+D)=M$, then stores $(M+D)-M=D$

• If I understand the examples correctly, the first will fail if there was anything else than a zero on the display earlier. The second one stores the D in memory, but messes up the display. (Also, the "M+" will do an implicit "=", so you can leave it out). The third one seems to use the first one, so it will probably have the same problem. – Bass Nov 7 '17 at 12:25
• @Bass I've tried these on the windows calculator which behaves mostly the same way. Without having the actual calculator it's hard to guess how it works exactly. From the newly added examples, it seems this would indeed fail here. If you want to reset the display after "store", just press MRC again. – w l Nov 7 '17 at 15:20
• Well done! All three are correct! – Rosie F Nov 9 '17 at 7:22

First answer (to change sign) could be (if I've understood correctly):

x2=-=
(the idea is to double the number and then subtract it from the original number. Obviously, wouldn't work if you're within a factor of 2 of the largest number the calculator can handle)

Second (to put D into memory)

Starting with M in memory (possibly blank) and D on the display
x2=-= (to make it -D on the display (or whatever the best solution to #1 is)
M- (-D on display, M+D in memory)
+MRC= (M on display, M+D in memory)
MRC (D on display, D in memory)

Third (to do an exchange) could be:

Starting with M in memory and D on the display
x2=-= (to make it -D on the display (or whatever the best solution to #1 is)
M- (-D on display, M+D in memory)
+MRC= (M on display, M+D in memory)
M- (M on display, D in memory)

• Your 2nd one fails; the first MRC acts as MR so displays M+D. M- then clears memory. Your 1st & 3rd work. Well found. But there are better (shorter) solutions to both. – Rosie F Nov 6 '17 at 11:26
• That will teach me not to rush! Fixed it. Now to work on getting them shorter... – Dr Xorile Nov 7 '17 at 3:26

Now these are my initial guesses. I may have gotten the entire idea wrong, and haven't debugged these at all. But anyways:

Changing signs (assuming unknown memory contents):

Four keypresses: x - 1 = (several alternatives exist)

Alternative, since negative number input doesn't exist: x 2 - = (EDIT: this may be mistaken)

assuming pre-zeroed memory this might work:

two keypresses: M- MRC

Store (assuming unknown memory contents):

four keypresses - MRC M+ MRC

assuming pre-zeroed memory:

one keypress: M+

Swap (assuming unknown memory contents):

(there must be an easier way) - MRC = M+ - MRC x - 1 =

Edited down to 8 presses, still seems to have room for improvement: M+ - MRC M- x 2 - = (re-edited for the sign change)

EDIT: Got rid of the "=" by starting with the negation. 7 keypresses now:
x 2 - M- + MRC M-
Since this is a bit complicated, here's a breakdown of what I think will happen. D is the value on the display, M is original memory contents memory. The "Prev" column is the "previously on display" value, which is used in the calculations, I think.

 Key  Prev  Disp  Mem
x    ?     D     M
2    D     2     M
-    2    2D     M
M-  2D    -D    M+D
+   2D    -D    M+D
MRC  -D   M+D    M+D
M-  M+D    M     D


assuming pre-zeroed memory:

M+ AC

• Change sign: Sorry, but the operators don't work that way. I'll add another example to clarify what happens when you do that sort of thing. – Rosie F Nov 6 '17 at 20:03
• Store: Correct! Well done. – Rosie F Nov 6 '17 at 20:10
• If I understand it correctly, your new "change sign" would calculate 2-2D – w l Nov 7 '17 at 15:22
• That's what I realised, too. "- 0 - =" would have been the next one, but w l beat me to it. – Bass Nov 10 '17 at 11:03