Scrieţi definiția completă a subprogramului C++ permutare care are 2 parametri: a, prin care primeşte un tablou unidimensional cu maximum 100 de numere naturale mai mici decât 1000 și n, numărul efectiv de elemente ale tabloului.Subprogramul verifică dacă elementele vectorului a reprezintă o permutare fără puncte fixe a mulțimii {1,2,...,n} și returnează valoarea 1 în caz afirmativ, respectiv 0 în caz negativ.
Restricţii şi precizări
0 < n <= 100
numele subprogramului cerut este permutare
parametrii sunt, în această ordine: a, n, cu semnificația de mai sus
elementele vectorului a sunt indexate de la zero
Exemplu
Dacă n=6 și a=(2,3,1,6,4,5) subprogramul va returna valoarea 1.
Dacă n=4 și a=(2,3,1,4) subprogramul va returna valoarea 0, deoarece permutarea are un punct fix.
Răspunsuri la întrebare
Răspuns de
2
int permutare(int a[], int n)
{
int i, v[1001]={0};
for(i = 0; i < n; i++)
v[a[i]] ++;
for(i = 0; i < n; i ++)
{
if(a[i] == i+1) return 0;
if(v[i+1] != 1) return 0;
}
return 1;
}
{
int i, v[1001]={0};
for(i = 0; i < n; i++)
v[a[i]] ++;
for(i = 0; i < n; i ++)
{
if(a[i] == i+1) return 0;
if(v[i+1] != 1) return 0;
}
return 1;
}
adelina122qmea:
Ce inseamna v[1001]={0};?
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă