Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of Factorial_Function by
main.cpp@0:c8831b97b76a, 2017-09-22 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
