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
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
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;
}
#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
Istorie,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă