int main() { // 1.1 Fibonacciho čísla printf("Fib(8) = %i\n", fib(8)); printf("Fib(24) = %i\n", fib(24)); printf("Fib(35) = %i\n", fib(35)); // 1.2 Faktoriál printf("Fact(6) = %i\n\n", fact(6)); // 2. Hledání půlením intervalu int i, p[11]; for (i=0; i<11; i++) p[i] = 2*i+3; for (i=0; i<11; i++) printf("Cislo %i je na indexu: %i\n", 2*i+3, puleni(p,0,10, 2*i+3)); printf("Cislo %i je na indexu: %i\n", 666, puleni(p, 0, 10, 666)); // Cislo 666 je na indexu: -1 // 3. Neuvěřitelná ... printf("\n%i\n", terminator_posloupnosti(1)); // 1 printf("%i\n", terminator_posloupnosti(44)); // 1 printf("%i\n", terminator_posloupnosti(32)); // 1 printf("%i\n", terminator_posloupnosti(44222)); // 1 printf("%i\n", terminator_posloupnosti(89)); // 89 printf("%i\n", terminator_posloupnosti(37)); // 89 printf("%i\n", terminator_posloupnosti(20)); // 89 printf("%i\n", terminator_posloupnosti(666)); // 89 return 0; }
// 2. Hledání půlením intervalu int puleni(int cisla[], int a, int b, int hledane) { if (a > b) return -1; int p = (a + b) / 2; if (cisla[p] == hledane) { return p; } else { if (hledane < cisla[p]) return puleni(cisla, a, p, hledane); else return puleni(cisla, p+1, b, hledane); } }
int puleni(int cisla[], int a, int b, int hledane) { int i = (a + b) / 2; if (a > b) { return -1; } if (hledane < cisla[i]) { return puleni(cisla, a, i - 1, hledane); } else if (hledane > cisla[i]) { return puleni(cisla, i + 1, b, hledane); } else { return i; } }
int main(int argc, char **argv) { time_t start, stop; int p[11], i; /* Ukol 1 */ printf("Porovnani vykonu vypoctu Fibonacciho posloupnosti:\n"); start = time(NULL); fibonacci_rekurze(45); stop = time(NULL); printf("Vypocet Fibonacciho posloupnosti pro cislo 45 rekurzi trval %d sekund\n", stop - start); start = time(NULL); fibonacci_cyklus(45); stop = time(NULL); printf("Vypocet Fibonacciho posloupnosti pro cislo 45 cyklem trval %d sekund.\n", stop - start); /* Ukol 2 */ printf("\nPuleni intervalu:\n"); for (i = 0; i < 11; i++) { p[i] = 2 * i + 3; } for (i = 0; i < 11; i++) { printf("Cislo %i je na indexu: %i\n", 2 * i + 3, puleni(p, 0, 10, 2 * i + 3)); } return 0; }