User Tools

Site Tools


dydaktyka:cprog:2015:recursion-solutions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dydaktyka:cprog:2015:recursion-solutions [2015/11/26 12:21]
pkleczek utworzono
— (current)
Line 1: Line 1:
-====== Rekurencja – rozwiązania ====== 
  
-Laboratorium:​ **[[dydaktyka:​cprog:​2015:​recursion|klik]]** 
- 
-===== Zadanie FACT ===== 
- 
-<code c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-int silnia(int n) 
-{ 
-    if (n == 0) { 
-        return 1; 
-    } else { 
-        return n * silnia(n - 1); 
-    } 
-} 
- 
-int main () 
-{ 
-    int n = 5; 
- 
-    printf("​%d! = %d\n", n, silnia(n)); 
- 
-    return 0; 
-} 
-</​code>​ 
- 
-===== Zadanie PRI ===== 
- 
-Poniższa wersja jest odrobinę bardziej elegancka w stosunku do tego, co omawialiśmy na laboratorium. \\ 
-W tej wersji właściwa funkcja rekurencyjna została "​opakowana"​ tak, aby dla końcowego użytkownika sprawdzanie "​pierwszości"​ liczby było możliwie intuicyjne. 
- 
-<code c> 
-#include <​stdio.h>​ 
-#include <​stdlib.h>​ 
- 
-/* wlasciwa funkcja rekurencyjna - chodzi o to, aby wywolywac glowna funkcje 
-    w mozliwie intuicyjny (a wiec tylko z jedym argumentem - `n`) */ 
-int pierw(int n, int i) 
-{ 
-    if (i == n) { 
-        // Sprawdzilismy wszystkie liczby 2, 3, ..., n-1 i... zadna nie jest 
-        // dzielnikiem `n`! 
-        return 1; 
-    } 
- 
-    /* else */ 
-    if (n % i == 0) { 
-        // `i` jest dzielnikiem! 
-        return 0; 
-    } 
- 
-    return pierw(n, i + 1); 
-} 
- 
-/* glowna funkcja sprawdzajaca */ 
-int czy_pierwsza(int n) 
-{ 
-    if (n == 0 || n == 1) { 
-        return 0; 
-    } else { 
-        // sprawdz dzielniki 2, 3, ..., n-1 (tj. sprawdzanie "w gore") 
-        return pierw(n, 2); 
-    } 
-} 
- 
-int main () 
-{ 
-    int n = 4; 
- 
-    printf("​Czy %d jest liczba pierwsza? - %d\n", n, czy_pierwsza(n));​ 
- 
-    return 0; 
-} 
-</​code>​ 
dydaktyka/cprog/2015/recursion-solutions.1448536882.txt.gz · Last modified: 2020/03/25 11:46 (external edit)