Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- /*
- Dana jest tablica wypełniona liczbami naturalnymi:
- int t[MAX][MAX];
- Proszę napisad funkcję, która w poszukuje w tablicy najdłuższego ciągu geometrycznego leżącego ukośnie w
- kierunku prawo-dół, liczącego co najmniej 3 elementy. Do funkcji należy przeka
- */
- const int N = 3;
- int geometric_sequence(int tab[N][N]);
- int main()
- {
- int tab[N][N] =
- {
- {1,2,3},
- {1,2,5},
- {1,6,4},
- };
- cout<<geometric_sequence(tab);
- return 0;
- }
- int geometric_sequence(int tab[N][N])
- {
- double quotient = tab[1][1]/tab[0][0];
- int result = 0;
- for(int x=0; x<N; x++)
- {
- for(int y=0; y<N; y++)
- {
- int length = 1;
- int MaxLength = 1;
- int distance_to_bottom_border = N - x - 1;
- int distance_to_right_border = N - y - 1;
- int steps_to_bottom_right_corner = min(distance_to_bottom_border,distance_to_right_border);
- double temp = tab[x+1][y+1]/tab[x][y];
- for(int i=1; i<=steps_to_bottom_right_corner; i++)
- {
- if(temp == quotient)
- length++;
- else
- {
- if(length > MaxLength){
- MaxLength = length;
- result = MaxLength;
- }
- length = 1;
- }
- quotient = tab[x+i][y+i]/tab[x][y];
- }
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement