MSOE EE2905 / Mbed 2 deprecated Factorial_Function

Dependencies:   mbed

Fork of Factorial_Function by Sheila Ross

Committer:
rossatmsoe
Date:
Fri Sep 22 15:48:50 2017 +0000
Revision:
0:c8831b97b76a
Child:
1:e6e33adba30e
Computation of a factorial using a for loop.  Also demonstrates use of scanf.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rossatmsoe 0:c8831b97b76a 1 /* Factorial
rossatmsoe 0:c8831b97b76a 2
rossatmsoe 0:c8831b97b76a 3 Demonstrates the use of a for loop to compute a factorial, and use of scanf
rossatmsoe 0:c8831b97b76a 4
rossatmsoe 0:c8831b97b76a 5 Turn on local echo in your terminal application to see what you have typed
rossatmsoe 0:c8831b97b76a 6
rossatmsoe 0:c8831b97b76a 7 */
rossatmsoe 0:c8831b97b76a 8
rossatmsoe 0:c8831b97b76a 9 #include "mbed.h"
rossatmsoe 0:c8831b97b76a 10
rossatmsoe 0:c8831b97b76a 11 Serial pc(USBTX,USBRX);
rossatmsoe 0:c8831b97b76a 12
rossatmsoe 0:c8831b97b76a 13 int n;
rossatmsoe 0:c8831b97b76a 14 int main()
rossatmsoe 0:c8831b97b76a 15 {
rossatmsoe 0:c8831b97b76a 16 while(1) {
rossatmsoe 0:c8831b97b76a 17
rossatmsoe 0:c8831b97b76a 18 pc.printf("Enter the number (0 through 12):\n");
rossatmsoe 0:c8831b97b76a 19 pc.scanf("%d",&n);
rossatmsoe 0:c8831b97b76a 20
rossatmsoe 0:c8831b97b76a 21 if(n<0) {
rossatmsoe 0:c8831b97b76a 22 pc.printf("Error: Number must be non-negative\n");
rossatmsoe 0:c8831b97b76a 23 }
rossatmsoe 0:c8831b97b76a 24 else {
rossatmsoe 0:c8831b97b76a 25 if(n>12) {
rossatmsoe 0:c8831b97b76a 26 pc.printf("Error: Number is too large\n");
rossatmsoe 0:c8831b97b76a 27 }
rossatmsoe 0:c8831b97b76a 28 else {
rossatmsoe 0:c8831b97b76a 29
rossatmsoe 0:c8831b97b76a 30 unsigned long answer=1;
rossatmsoe 0:c8831b97b76a 31 for(int k=1; k<=n; k++) {
rossatmsoe 0:c8831b97b76a 32 answer*=k;
rossatmsoe 0:c8831b97b76a 33 }
rossatmsoe 0:c8831b97b76a 34 pc.printf("%d!=%lu\n",n,answer);
rossatmsoe 0:c8831b97b76a 35
rossatmsoe 0:c8831b97b76a 36 }
rossatmsoe 0:c8831b97b76a 37 }
rossatmsoe 0:c8831b97b76a 38 }
rossatmsoe 0:c8831b97b76a 39 }