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.
main.cpp@1:a388472c17f4, 2021-04-17 (annotated)
- Committer:
- firefoxik
- Date:
- Sat Apr 17 11:13:51 2021 +0000
- Revision:
- 1:a388472c17f4
- Parent:
- 0:3f1c5a906dc0
Added Recursion function
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| firefoxik | 0:3f1c5a906dc0 | 1 | //Fibanocci |
| firefoxik | 0:3f1c5a906dc0 | 2 | |
| firefoxik | 0:3f1c5a906dc0 | 3 | #include "mbed.h" |
| firefoxik | 0:3f1c5a906dc0 | 4 | |
| firefoxik | 1:a388472c17f4 | 5 | int Fibanocci_recursion(int n) |
| firefoxik | 1:a388472c17f4 | 6 | { |
| firefoxik | 1:a388472c17f4 | 7 | if (n <= 1) |
| firefoxik | 1:a388472c17f4 | 8 | return n; |
| firefoxik | 1:a388472c17f4 | 9 | else |
| firefoxik | 1:a388472c17f4 | 10 | return Fibanocci_recursion(n-1) + Fibanocci_recursion(n-2); |
| firefoxik | 1:a388472c17f4 | 11 | } |
| firefoxik | 1:a388472c17f4 | 12 | |
| firefoxik | 1:a388472c17f4 | 13 | |
| firefoxik | 1:a388472c17f4 | 14 | void Fibanocci(int N) |
| firefoxik | 1:a388472c17f4 | 15 | { |
| firefoxik | 0:3f1c5a906dc0 | 16 | int i = 0; |
| firefoxik | 0:3f1c5a906dc0 | 17 | //Tried up to 50, but at 47, unsigned int number is overflowed showing negative result |
| firefoxik | 1:a388472c17f4 | 18 | // so I changed to long long |
| firefoxik | 0:3f1c5a906dc0 | 19 | unsigned long long j = 1; |
| firefoxik | 0:3f1c5a906dc0 | 20 | unsigned long long k = 0; |
| firefoxik | 0:3f1c5a906dc0 | 21 | unsigned long long fib = 0; |
| firefoxik | 1:a388472c17f4 | 22 | while (i<=N) { |
| firefoxik | 0:3f1c5a906dc0 | 23 | printf("Fibanocci(%d) = %lld\n", i, fib); |
| firefoxik | 0:3f1c5a906dc0 | 24 | fib = j + k; |
| firefoxik | 0:3f1c5a906dc0 | 25 | j = k; |
| firefoxik | 0:3f1c5a906dc0 | 26 | k = fib; |
| firefoxik | 0:3f1c5a906dc0 | 27 | i++; |
| firefoxik | 0:3f1c5a906dc0 | 28 | } |
| firefoxik | 0:3f1c5a906dc0 | 29 | } |
| firefoxik | 0:3f1c5a906dc0 | 30 | |
| firefoxik | 0:3f1c5a906dc0 | 31 | int main() |
| firefoxik | 0:3f1c5a906dc0 | 32 | { |
| firefoxik | 0:3f1c5a906dc0 | 33 | |
| firefoxik | 0:3f1c5a906dc0 | 34 | Fibanocci(50); |
| firefoxik | 1:a388472c17f4 | 35 | |
| firefoxik | 1:a388472c17f4 | 36 | //recursion function is soo computational complicated, so when reached over 30, it takes ages to compute |
| firefoxik | 1:a388472c17f4 | 37 | for(int x = 0; x <40; x++) { |
| firefoxik | 1:a388472c17f4 | 38 | int f = Fibanocci_recursion(x); |
| firefoxik | 1:a388472c17f4 | 39 | printf("Fibanocci_recursion(%d) = %d\n", x, f); |
| firefoxik | 1:a388472c17f4 | 40 | } |
| firefoxik | 0:3f1c5a906dc0 | 41 | while(true) { |
| firefoxik | 1:a388472c17f4 | 42 | wait(1); |
| firefoxik | 0:3f1c5a906dc0 | 43 | } |
| firefoxik | 0:3f1c5a906dc0 | 44 | |
| firefoxik | 0:3f1c5a906dc0 | 45 | |
| firefoxik | 0:3f1c5a906dc0 | 46 | } |