Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".
1 /*
2 * Soubor: 20101210-Fri-fibonacci.c
3 * Datum: 10.12.2010 08:19
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: Fibonacciho posloupnost
7 */
8
9 #include <stdio.h>
10
11 /////////////////////////////////////////////////////
12
13
14 long int fibonacci(int n) {
15 if (n==0) {
16 return 0;
17 } else if (n==1) {
18 return 1;
19 } else {
20 return ( fibonacci(n-2)+fibonacci(n-1) );
21 }
22
23 }
24
25 long int fibonacci_iter(int n) {
26 if (n==0) {
27 return 0;
28 } else if (n==1) {
29 return 1;
30 } else {
31 int soucet;
32 long prepre,pre;
33 int i;
34 for (i=2, prepre=0, pre=1; i<=n; i++) {
35 soucet = prepre + pre;
36 prepre = pre;
37 pre = soucet;
38 }
39 return soucet;
40 }
41 }
42
43
44 /**
45 * Hlavní program.
46 */
47 int main(void) {
48 int n=0;
49
50 scanf("%d",&n);
51 printf("%ld\n",fibonacci(n));
52 printf("%ld\n",fibonacci_iter(n));
53
54 return 0;
55 }