Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. Dana jest tablica wypełniona liczbami naturalnymi:
  5. int t[MAX][MAX];
  6. Proszę napisad funkcję, która w poszukuje w tablicy najdłuższego ciągu geometrycznego leżącego ukośnie w
  7. kierunku prawo-dół, liczącego co najmniej 3 elementy. Do funkcji należy przeka
  8. */
  9. const int N = 3;
  10. int geometric_sequence(int tab[N][N]);
  11.  
  12. int main()
  13. {
  14. int tab[N][N] =
  15. {
  16. {1,2,3},
  17. {1,2,5},
  18. {1,6,4},
  19. };
  20. cout<<geometric_sequence(tab);
  21. return 0;
  22. }
  23.  
  24. int geometric_sequence(int tab[N][N])
  25. {
  26. double quotient = tab[1][1]/tab[0][0];
  27. int result = 0;
  28. for(int x=0; x<N; x++)
  29. {
  30. for(int y=0; y<N; y++)
  31. {
  32. int length = 1;
  33. int MaxLength = 1;
  34. int distance_to_bottom_border = N - x - 1;
  35. int distance_to_right_border = N - y - 1;
  36. int steps_to_bottom_right_corner = min(distance_to_bottom_border,distance_to_right_border);
  37.  
  38. double temp = tab[x+1][y+1]/tab[x][y];
  39. for(int i=1; i<=steps_to_bottom_right_corner; i++)
  40. {
  41. if(temp == quotient)
  42. length++;
  43. else
  44. {
  45. if(length > MaxLength){
  46. MaxLength = length;
  47. result = MaxLength;
  48. }
  49. length = 1;
  50. }
  51. quotient = tab[x+i][y+i]/tab[x][y];
  52. }
  53. }
  54. }
  55. return result;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement