Advertisement
Wojtekd

LAB6 Rekurencja

Mar 31st, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define N 11
  5. #define M 11
  6. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  7.  
  8. int power(int x,int p)
  9. {
  10.     return p == 0 ? 1 : x * power(x,p-1);
  11. }
  12. int tab_sum(int* tab, int first, int length)
  13. {
  14.     return first >= length ? 0 : tab_sum(tab,first+1,length) + tab[first];
  15. }
  16. int fib(int n)
  17. {
  18.     if(n == 1 || n == 0) return 0;
  19.     if(n == 2) return 1;
  20.     return fib(n-1) + fib(n-2);
  21. }
  22.  
  23.  
  24. void cross(int **tab, int start_w, int start_k, int stop_w, int stop_k)
  25. {
  26.     int middleWidth = (stop_w - start_w) / 2;
  27.     int middleHeight = (stop_k - start_k) / 2;
  28.    
  29.     if(middleWidth <= 1) return;
  30.     if(middleHeight <= 1) return;
  31.    
  32.     int i;
  33.     for(i = start_w; i <= stop_w; i++)
  34.     {
  35.         tab[i][middleHeight] = 1;
  36.     }
  37.     for(i = start_k; i <= stop_k; i++)
  38.     {
  39.         tab[middleWidth][i] = 1;
  40.     }  
  41.     cross(tab,start_w,start_k,middleWidth,middleHeight);
  42. }
  43. int main(int argc, char *argv[])
  44. {
  45.    
  46.     int** tab = (int**)calloc(N,sizeof(int*));
  47.     int i;
  48.     for(i = 0; i < N; i++)
  49.     {
  50.         tab[i] = (int*)calloc(M,sizeof(int));
  51.     }
  52.    
  53.     // krzyz
  54.     cross(tab,0,0,M-1,N-1);
  55.    
  56.     int j;
  57.     for(i = 0; i < N; i++)
  58.     {
  59.         printf("\n");
  60.         for(j = 0; j < M; j++)
  61.         {
  62.             printf(" %d", tab[i][j]);
  63.         }
  64.     }
  65.    
  66.        
  67.     /* printf("%d",power(2,4)); */
  68.     /*
  69.     int tab[4] = {2,2,5,5};
  70.     printf("%d",tab_sum(tab,0,4));
  71.     */
  72.     /* printf("%d",fib(4)); */
  73.    
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement