👤

rezolvare in c++ va rog

Rezolvare In C Va Rog class=

Răspuns :

#include <iostream>

using namespace std;

//a->1, e->5, i->9

int cif_distincte(int x, int n, int c[])

{

int f[10]={0,0,0,0,0,0,0,0,0,0};

for(int i=n-1;i>=0;i--)

{

c[i]=x%10;

f[c[i]]++;

x=x/10;

}

for(int cif=1;cif<=n;cif++)

if(f[cif]!=1)

return 0;

return 1;

}

int ok_voc(int c[],int n)

{

for(int i=0;i<=n-2;i++)

if(c[i]==1 && c[i+1]==5 || c[i]==5 && c[i+1]==1 ||

c[i]==1 && c[i+1]==9 || c[i]==9 && c[i+1]==1 ||

c[i]==5 && c[i+1]==9 || c[i]==9 && c[i+1]==5)

return 0;

return 1;

}

int main()

{

int n,i,nmin=0,nmax=0, c[10];

char s[10];

cin>>n;

for(i=1;i<=n;i++)

nmin=nmin*10+i;

for(i=n;i>=1;i--)

nmax=nmax*10+i;

for(i=nmin;i<=nmax;i++)

if (cif_distincte(i, n, c) && ok_voc(c,n))

{

for(int j=0;j<n;j++)

cout<<(char)('a'+c[j]-1);

cout<<endl;

}

}