Informatică, întrebare adresată de flaviamarina10, 9 ani în urmă

Cerinţa
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

Răspunsuri la întrebare

Răspuns de ochiuverde
1
int permutare(int a[100],int n){    for (int i=0;i<n;i++)        if (a[i]==i+1) return 0;    return 1;}
Răspuns de express
7
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;
}

Alte întrebări interesante