Oldrich Krivanek / Mbed 2 deprecated Lab_17042021_2

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }