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-S.c
3 * Datum: 10.12.2010 10:24
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha: Fibonacciho posoupnost
7 */
8
9 #include <stdio.h>
10 #include <limits.h>
11
12 /////////////////////////////////////////////////////
13 long fibonacci(unsigned int n)
14 {
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 unsigned long fiboiter(unsigned int n)
25 {
26 if ( n==0 ) {
27 return 0;
28 } else if ( n==1 ) {
29 return 1;
30 } else {
31 long int soucet;
32 long prepre=0;
33 long pre=1;
34 for (int i=2 ; i<=n ;i++ ) {
35 soucet = prepre + pre;
36 prepre = pre;
37 pre = soucet;
38 }
39 return soucet;
40 }
41 }
42 /**
43 * Hlavní program.
44 */
45 int main(void) {
46 int n;
47
48 scanf("%d",&n);
49 printf("%ld\n", fibonacci(n) );
50 printf("%ld\n", fiboiter(n) );
51 printf("%lu\n",ULONG_MAX);
52 printf("%ld\n",sizeof(unsigned long));
53
54 return 0;
55 }