Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Vector getSquares(double a, double b, double c)
- {
- Vector v;
- v.length = 0;
- double dif_max = 0, dif_min = 0;
- if(a > 0 && b > 0 && c > 0)
- dif_max = max(a, b, c) - min(a, b, c);
- else
- dif_max = min(a, b, c) - max(a, b, c);
- unsigned int used[2] = {0};
- double n = 0;
- if(max(a, b, c) == a) used[0] = 1;
- else if(max(a, b, c) == b) used[1] = 1;
- else if(max(a, b, c) == c) used[2] = 1;
- if(min(a, b, c) == a) used[0] = 1;
- else if(min(a, b, c) == b) used[1] = 1;
- else if(min(a, b, c) == c) used[2] = 1;
- if(used[0] == 0) n = a;
- else if(used[1] == 0) n = b;
- else if(used[2] == 0) n = c;
- if(min(a, b, c) - n > 0)
- dif_min = min(a, b, c) - n;
- else dif_min = n - min(a, b, c);
- unsigned int i = 1;
- while(i * i >= dif_min && i * i <= dif_max)
- v.values[v.length++] = i++;
- return v;
- }
- // Sa se determine toate numerele ale caror cuburi se afla intre cea mai mica si cea mai mare valoare a trei numere.
- Vector getCubes(double a, double b, double c)
- {
- Vector v;
- v.length = 0;
- double dif_max = 0, dif_min = 0;
- if(a > 0 && b > 0 && c > 0)
- dif_max = max(a, b, c) - min(a, b, c);
- else
- dif_max = min(a, b, c) - max(a, b, c);
- unsigned int used[2] = {0};
- double n = 0;
- if(max(a, b, c) == a) used[0] = 1;
- else if(max(a, b, c) == b) used[1] = 1;
- else if(max(a, b, c) == c) used[2] = 1;
- if(min(a, b, c) == a) used[0] = 1;
- else if(min(a, b, c) == b) used[1] = 1;
- else if(min(a, b, c) == c) used[2] = 1;
- if(used[0] == 0) n = a;
- else if(used[1] == 0) n = b;
- else if(used[2] == 0) n = c;
- if(min(a, b, c) - n > 0)
- dif_min = min(a, b, c) - n;
- else dif_min = n - min(a, b, c);
- unsigned int i = 1;
- while(i * i * i >= dif_min && i * i * i <= dif_max)
- v.values[v.length++] = i++;
- return v;
- }
- // Sa se generalizeze subpunctul d) considerand puterea a n-a.
- Vector getNthRoots(double a, double b, double c, int n)
- {
- Vector v;
- v.length = 0;
- double dif_max = 0, dif_min = 0;
- if(a > 0 && b > 0 && c > 0)
- dif_max = max(a, b, c) - min(a, b, c);
- else
- dif_max = min(a, b, c) - max(a, b, c);
- unsigned int used[2] = {0};
- double m = 0; // memoram aici numarul mediu(nu cel maxim, nici cel minim)
- if(max(a, b, c) == a) used[0] = 1;
- else if(max(a, b, c) == b) used[1] = 1;
- else if(max(a, b, c) == c) used[2] = 1;
- if(min(a, b, c) == a) used[0] = 1;
- else if(min(a, b, c) == b) used[1] = 1;
- else if(min(a, b, c) == c) used[2] = 1;
- if(used[0] == 0) m = a;
- else if(used[1] == 0) m = b;
- else if(used[2] == 0) m = c;
- if(min(a, b, c) - n > 0)
- dif_min = min(a, b, c) - m;
- else dif_min = m - min(a, b, c);
- int number = 1, aux = 1;
- while(aux >= dif_min && aux <= dif_max) {
- number = 1;
- for(int j=1; j<=n; j++)
- number *= aux;
- if(number >= dif_min && number <= dif_max)
- v.values[v.length++] = aux;
- aux ++;
- }
- return v;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement