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

Se numeşte permutare a unei mulţimi finite orice rearanjare a tuturor elementelor acelei mulţimi.

Cerinţa
Se dă un şir cu n elemente, numere naturale. Să se verifice dacă reprezintă o permutare a mulţimii {1,2,...,n}.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran mesajul DA, dacă şirul reprezintă o permutare a mulţimii {1,2,...,n}, respectiv NU în caz contrar.

Restricţii şi precizări
1 ≤ n ≤ 100

Răspunsuri la întrebare

Răspuns de baiatul122001
4
#include<iostream>using namespace std;int main(){int v[101],n,i,j,aux,p;cin>>n;for(i=1;i<=n;i++) cin>>v[i];for(i=1;i<n;i++)for(j=i+1;j<=n;j++)if(v[i]>v[j]){aux=v[i];v[i]=v[j];v[j]=aux;}p=1;for(i=1;i<=n;i++)if(v[i]!=i) p=0;if(p==1) cout<<"DA";else cout<<"NU";return 0;}
Răspuns de express
7
Iti ofer si sursa mea C++ la aceasta problema. Succes!
#include <iostream>
using namespace std;
int n, v[105], i, x;
bool ok=true;;
int main()
{
    cin >> n;
    for (i = 1; i <= n; i++)
    {
        cin >> x;
        v[x]++;
    }
    for(i = 1; i <= n; i++)
        if(v[i] != 1)
        {
            ok = false;
            break;
        }
    if (ok) cout <<"DA";
       else cout <<"NU";
    return 0;
}

Alte întrebări interesante