Subprograme pentru:
-verificarea dacă doua numere sunt asemenea (scrise în baza 10)
-eliminarea unui subsir dintr-un sir
-eliminarea secventelor de numere asemenea dintr-un sir
Răspunsuri la întrebare
int asemenea(int a, int b)//verifica cara a si b sunt asemenea
{
int fa[10]={0}, fb[10]={0};//doi vectori caracteristici pt cifrele fiecarui numar
while(a>0)
{
fa[a%10]=1; a=a/10;
}
while(b>0)
{
fb[b%10]=1; b=b/10;
}
for(int c=0;c<=9;c++)// pt fiecare cifra
if(fa[c]!=fb[c]) return 0; // 0 si 1 sau 1 si 0
return 1;
}
int stergij(int a[], int &n, int x,int y)//sterge din a elementele cu indicii intre x si y
{
for(int i=1;i<=y-x+1;i++)
for(int j=x;j<n;j++)
a[j]=a[j+1];
n=n-(y-x+1);
}
void stergesecvente(int a[], int &n)//sterge secventele de numere asemenea
{
for(int i=1;i<n;i++)
if(asemenea(a[i],a[i+1]))//doua asemena
{
int j=i+1;
while(asemenea(a[i],a[j]) && j<=n) j++;//cat timp sunt asemenea maresc j
stergij(a,n,i,j-1);//sterg de la i la j-1
i--;
}
}