Casio fx991MS tips and tricks
Introduction
The Casio fx991MS is a scientific calculator with many powerful features. Some of these can greatly reduce the effort when solving problems, while others can be abused in interesting and fun ways. Being able to use these features can also be helpful on tests and exams where scientific calculators are allowed but more powerful graphing calculators are not.
On this page, I will show you some advanced and clever tricks that you can do with the calculator. Although the article is for the Casio fx991MS calculator (and all the tricks mentioned here are guaranteed to work on it), the calculator features and underlying mathematical principles for the tricks are quite general and can be applied to many other calculators as well. (You will be able to do so when you understand the trick and your calculator’s features.)
Official Casio manuals
I assume that you know the basics of how to use the calculator. If not, please read the user manuals and review how to use the features on the calculator. The official Casio manuals are available in PDF format here:
Do not contact me to ask about how to use the calculator. I assume you know how to read the manuals and find the buttons.
Contents

Standard tricks
 Solve polynomials and linear systems
 Solve arbitrary equations
 Evaluate a function at many points
 Random number generation
 Degreeminutesecond conversion
 Numerical differentiation
 Numerical integration
 Display and key test

Iterating formulas

Simple iterations
 Arithmetic sequence
 Geometric sequence
 Repeated squaring
 Logistic map
 Newton’s method iteration
 Fixed point iteration

Taylor series iterations
 Exponential function
 Cosine function
 Sine function
 Fibonacci sequence iteration
 Greatest common divisor iteration

Simple iterations

Miscellaneous tricks
 l33tsp34k
 Store 80 numbers
 Wish list
Standard tricks
These tricks are just builtin features of the calculator that are not entirely obvious, because the previous generation of scientific calculators did not have these features.
Solve polynomials and linear systems
To solve a quadratic or cubic polynomial equation:
 Go to EQN mode and scroll over to the
Degree?
section (MODE MODE MODE 1 →
).  Enter the degree (
2
or3
).  Enter the 3 or 4 (real) polynomial coefficients, from highest degree downward.
 Scroll up and down through the solution set. Complexvalued solutions are included.
To solve a system of linear equations in 2 or 3 variables:
 Go to EQN mode and stay at the
Unknowns?
section (MODE MODE MODE 1
)  Enter the number of variables, which is also the number of equations (
2
or3
)  Enter the 6 or 12 coefficients of the system of linear equations.
 Scroll up and down through the solution vector.
Polynomials equations and linear systems are frequently occurring problems in mathematics and sciences, which makes this calculator feature one of the most useful ones.
Solve arbitrary equations
To solve an arbitrary equation of one variable:
 Enter the equation on the formula line. (e.g.,
3X−8=5
)  Press
SOLVE
(SHIFT CALC
).  Give an initial guess for the variable and press the equals button. Try to give a value near an actual solution, or else solving will be slow or will fail. (However if the equation is linear, then any initial value works.)
 Press
SOLVE
again (SHIFT CALC
). You may need to wait a few seconds.  Read the result. (e.g.,
X=4.333333333
)
The calculator uses a form of Newton’s method (as mentioned in the manual) to solve the equation. The algorithm can easily hang, fail, or give a wrong answer, so beware – it is not an automatic solver for all equations.
Tip: Although linear equations are simple to solve in theory, letting the calculator solve it for you can still save you some algebraic manipulation. Here’s an example problem: The 3 angles in a triangle are A, B, and C. B is twice of A. C is triple of B. Find the value of B.
The solution can be found by solving the equation B÷2+B+3B=180
.
Evaluate a function at many points
You can evaluate an arbitrary function (of one or more variables) at different arguments without reentering the function’s definition repeatedly. Procedure:
 Enter the expression defining the function. (e.g.
X^{2}+Y
)  Press
CALC
.  For each variable in the expression, give it a value.
 Read the value of the evaluated expression.
 To evaluate the function at another argument, go to step 2 (not step 1).
For example, this makes it much easier to use the rational root theorem to factor or solve polynomials.
Random number generation
The pseudovariable Ran#
(SHIFT .
) gives a uniformly distributed random number in the range [0, 1) with a step size of 0.001. It takes on a random value for each instance in a formula and for each evaluation of a formula. (e.g. Ran#+Ran#
has a different distribution than 2Ran#
.)
To get an integer in the range [0, N), evaluate N×Ran#
and mentally discard the fractional part of the result. This can be useful answering multiplechoice questions, e.g. Go left or go right?
.
To get a finer step size, use Ran#+0.001Ran#
(step size 10^{−6}) or Ran#+0.001Ran#+0.000001Ran#
(step size 10^{−9}).
Degreeminutesecond conversion
We inherited the sexagesimal (base60) system from the Babylonians. While it makes some division problems easier for mental arithmetic, generally speaking decimal fractions are far easier to work with in practice. But for those times when you do need to work in sexagesimal or convert between it and decimal, this calculator comes to the rescue. It supports number input in degreeminutesecond format, and can convert to and from decimal format. See the manual for details, or just play around with the °′″
button.
Obviously, this feature is useful for doing calculations with angles expressed in DMS notation. But I think it’s less well known that it helps calculations involving time, too. Don’t you remember that there are 60 minutes in an hour and 60 seconds in a minute? These subdivisions are the same as the DMS scheme.
To illustrate how DMS features can be used to solve timerelated problems, I present some example exercises:

You arrived at work at 08:42:44 and left at 17:24:59. How long were you present at work?
Answer:
17°24°59° − 08°42°44°
, which yields8°42°15
. This means 8 hours, 42 minutes, and 15 seconds. Pressing the°′″
button swiftly converts this answer to about 8.70 hours. 
You start driving at 21:30:00 at a speed of 30 m/s, and you need to travel 150 km. At what time will you reach your destination?
Answer:
21°30° + 150×1000÷30÷3600
, which yields 22:53:20 (exact).
Numerical differentiation
The numerical differentiation operation (SHIFT ∫dx
) takes 2 or 3 arguments:
 The function of X to differentiate
 The point where the derivative is evaluated at
 The change in X (optional)
For example: d/dx(X^X,0.5)
= 0.216976666. (The true value is about 0.216977710.)
Numerical integration
The numerical integration operation (∫dx
) takes 3 or 4 arguments:
 The function of X to integrate
 The lower limit
 The upper limit
 The amount of partitioning (optional)
If the amount of partitioning is n, then the number of partitions is 2^{n}. See User’s Guide 2 for more details.
Example of usage, while varying the amount of partitioning:
∫(X^{−1},1,2,1)
= 0.7∫(X^{−1},1,2,2)
= 0.69∫(X^{−1},1,2,3)
= 0.6932∫(X^{−1},1,2,4)
= 0.69315∫(X^{−1},1,2,5)
= 0.693147∫(X^{−1},1,2,6)
= 0.6931472∫(X^{−1},1,2,7)
= 0.69314718∫(X^{−1},1,2,8)
= 0.693147181∫(X^{−1},1,2,9)
= 0.69314718
The true value is ln 2, approximately 0.693147181.
Warning: Most functions integrate much more slowly and yield more error than this example.
Display and key test
To enter the calculator’s display and key test mode, press and hold SHIFT
and 7
, then ON
. To exit the test at any time, press ON
. (Note: Pressing 7
is not necessary on some older versions of this calculator.)
The first phase is the display test. Press SHIFT
to step through the sequence of LCD patterns:
 All segments on
 All segments off
 Half of segments on
 The other half of segments on
 Many copies of a single digit, from 0 to 9
The last display test shows 9999999999^{99}
. Pressing SHIFT
again starts the second phase, the key test. To complete the test, press every key (except ON
) in order from left to right, top to bottom. The number on the screen increments every time you correctly hit the next key in the sequence. Don’t press ON
unless you intend to quit!
Iterating formulas
A major difference between this calculator and older scientific calculators is that this calculator does not evaluate the expression while you input it. After you finish entering the expression, you press the equals key (=
) and the calculator evaluates the expression all at once.
The most recent expression evaluated can be reevaluated simply by pressing the equals key. The result of each evaluation is always saved in the answer variable (Ans
). For singlestatement iterations, it is most convenient to use Ans as the iterated variable. For example, Ans+1
is functionally equivalent but easier to type than X=X+1
.
Multistatement iterations can be written by using colon (ALPHA ∫dx
) to separate the statements. When evaluating, press the equals key once per statement, and the calculator evaluates them in sequence. When all the statements in the line have been evaluated, pressing the equals key will go back to evaluating the first statement. For example, A=A+2:B=B−3
is a multistatement line.
Remember to give initial values to all the variables used in the iterations.
Simple iterations
 Arithmetic sequence

For example, starting at 0 and counting up by 1:
 Initialize: Evaluate
0
(sets Ans to 0).  Iterate: Evaluate
Ans+1
.
 Initialize: Evaluate
 Geometric sequence

For example, starting at 1 and doubling:
 Initialize: Evaluate
1
(sets Ans to 1).  Iterate
2Ans
.
 Initialize: Evaluate
 Repeated squaring

For example, starting at 1.000000001 and squaring:
 Initialize: Evaluate
1.000000001
(sets Ans to 1.000000001).  Iterate
Ans^{2}
.
(The value overflows after 38 iterations.)
 Initialize: Evaluate
 Logistic map

For example, the chaos at r = 4:
 Initialize: Evaluate
0.2
(sets Ans to 0.2).  Iterate
4Ans(1−Ans)
and watch the randomness.
 Initialize: Evaluate
Newton’s method iteration
To solve an equation of the form f(x) = 0:
 Set Ans to an initial value close to a root (solution).
 Iterate the expression Ans − f(Ans)/f′(Ans), where f′ is the derivative of f.
For example, to solve x^{2} − 3 = 0:
 Initialize: Evaluate
1000(Ran#−0.5)
.  Iterate
Ans−(Ans^{2}−3)/(2Ans)
.
After a number of iterations, the result should converge to 1.732050808 or −1.732050808, depending on the initial value.
Fixed point iteration
It is possible to solve equations of the form f(x) = x by simply iterating x_{next} = f(x).
Examples:
 Iterating
cos Ans
, the answer converges to 0.739085133 in radians mode and 0.999847741 in degrees mode.  Iterating
e−Ans
(i.e., e^{−Ans}), the answer converges to 0.567143290.
Unfortunately, fixed point iteration is generally slower and less reliable than Newton’s method.
Taylor series iterations
We can manually simulate some elementary functions using naïve Taylor series.
 Exponential function

 Initialize
X
with the argument of your choice.  Initialize:
Y=1
,A=0
,C=0
 Iterate:
A=A+Y : Y=YX÷(C+1) : C=C+1
 Read the answer from A.
 Initialize
 Cosine function

 Initialize
X
with the argument of your choice.  Initialize:
Y=1
,A=0
,C=0
 Iterate:
A=A+Y : Y=−YX^{2}÷(C+1)÷(C+2) : C=C+2
 Read the answer from A.
 Initialize
 Sine function

 Initialize
X
with the argument of your choice.  Initialize:
Y=X
,A=0
,C=1
 Iterate:
A=A+Y : Y=−YX^{2}÷(C+1)÷(C+2) : C=C+2
 Read the answer from A.
 Initialize
Fibonacci sequence iteration
Procedure:
 Initialize:
A=0
,B=1
 Iterate:
C=A+B : A=B : B=C
Greatest common divisor iteration
This is based on the original Euclidean algorithm, which uses repeated subtraction rather than the modulus (remainder) operation. The procedure:
 Set the mode to complex numbers (
MODE 2
). (This is needed in order to use the absolute value function.)  Initialize: Set A and B to be the natural numbers whose GCD will be computed.
 Iterate:
A = A − B (tanh(20A−20B) + Abs tanh(20A−20B)) ÷ 2 : B = B − A (tanh(20B−20A) + Abs tanh(20B−20A)) ÷ 2
. (Quite a mouthful, isn’t it?)  When A and B converge to the same number, that number is the GCD answer.
Note that the function f(x) = (tanh(20x) − tanh(20x)) / 2 hackily emulates a step function, with f(x) = 0 for x ≤ 0 and f(x) = 1 for x ≥ 1. (This is due to the finite precision and rounding.)
Thanks to Bojan Petrovic for suggesting this trick!
Miscellaneous tricks
l33tsp34k
The calculator contains a palette of symbols, which can be used to spell out words and phrases in l33tsp34k. The complete (Latin) alphabet cannot be spelled out, but this can make the exercise more fun.
Letter  Character  Meaning  Key sequence 

A  A  Variable A  ALPHA (−) 
4  Digit 4  4  
α  Fine structure constant  CONST 10  
B  B  Variable B  ALPHA °′″ 
8  Digit 8  8  
C  C  Variable C  ALPHA hyp 
C  Combination function  SHIFT +  
D  D  Variable D  ALPHA sin 
E  E  Variable E  ALPHA cos 
E  E notation separator  EXP  
e  Exponential function  SHIFT ln  
e  Elementary charge  CONST 23  
e  Euler’s number  ALPHA ln  
3  Digit 3  3  
F  F  Variable F  ALPHA tan 
F  Faraday constant  CONST 22  
f  SI prefix femto  SHIFT 1  
G  G  SI prefix giga  SHIFT 8 
G  Gravitational constant  CONST 39  
g  Standard gravity  CONST 35  
H  h  Planck constant  CONST 06 
I  i  Imaginary unit  ENG (only in complex mode) 
1  Digit 1  1  
K  k  SI prefix kilo  SHIFT 6 
k  Boltzmann constant  CONST 25  
L  1  Digit 1  1 
M  M  Variable M  ALPHA M+ 
M  SI prefix mega  SHIFT 7  
m  SI prefix milli  SHIFT 5  
N  n  SI prefix nano  SHIFT 3 
O  0  Digit 0  0 
P  P  Permutation function  SHIFT × 
p  SI prefix pico  SHIFT 2  
R  R  Ideal gas constant  CONST 27 
S  5  Digit 5  5 
T  T  SI prefix tera  SHIFT 9 
t  Celsius temperature  CONST 38  
7  Digit 7  7  
U  u  Atomic mass unit  CONST 17 
X  X  Variable X  ALPHA ) 
×  Times  ×  
Y  Y  Variable Y  ALPHA , 
Z  2  Digit 2  2 
The letters that cannot be represented are J, Q, V, W. Discovering the punctuation that can be entered is left as an exercise for the reader.
Store 80 numbers
In the SD mode, you can store a sequence of up to 80 numbers, which persist even after a power cycle. To store a number, enter a literal number or an expression, then pressing DT
(M+
). To retrieve the numbers, scroll through the sequence of stored numbers by pressing up or down (↑
, ↓
).
In theory, any information can be stored as numbers. (Modern digital computers are built completely on this fact.) For example, if you want to store text on the calculator, just devise a coding scheme that maps between letters and numbers. Note that with the precision available, each number on this calculator can hold up to about 40.7 bits of information.
Wish list
It would be nice if the Casio fx991MS had these features. They’re not found on other scientific calculators, but they are sometimes found on graphing calculators, and they’re certainly available on generalpurpose computers (even smartphones):
 Integer division, modulo, power modulo, reciprocal modulo, greatest common divisor
 Gamma function (real factorial), other special functions
 Fully implemented complex number functions (e.g. sine of complex number, exp of complex number, etc.)