/*La combinazione di una cassaforte è
composta da 5 numeri; un utente ha dimenticato
la sequenza esatta, si ricorda solamente che sono
presenti tre numeri pari, uno solo dei quali è 2
e due numeri dispari che nella combinazione
sono vicini.Lo zero non c'è.Scrivere un algoritmo
che propone una password del genere suddetto.
N={ x| x!=0 AND 1<x<9 AND PPPDD }*/
#include<iostream>
#include<ctime>
using namespace std;
bool cerca_2(int array[]);
bool cerca_pd(int array[]);
bool cerca_consec(int array[]);
const int dim=5;
/*ritorna true se nell'array c'è uno e uno solo 2 */
bool cerca_2(int array[])
{
int conta_2=0;
for(int i=0;i<dim;i++)
{
if(array[i]==2)
conta_2++;
}
if(conta_2==1)
return true;
else
return false;
}
/*ritorna true se nell'array ci sono esattamente 2 dispari e tre pari*/
bool cerca_pd(int array[])
{
int conta_d=0;
int conta_p=0;
for(int i=0;i<dim;i++)
{
if(array[i]%2==0)
conta_p++;
else
conta_d++;
}
if(conta_d==2 && conta_p==3)
return true;
else
return false;
}
/*ritorna true se ci sono due dispari consecutivi*/
bool cerca_consec(int array[])
{
for(int i=0;i<dim-1;i++)
{
if(array[i]%2!=0 && array[i+1]%2!=0)
{
return true;
}
}
return false;
}
int main()
{
/*password composta da due dispari e tre pari*/
int password[dim]={0};
/*valorizziamo l'array con 5 elementi casuali*/
int conta=0;
srand(time(0));
/*finche non sono verificate tutte tre le condizioni, valorizza*/
while(cerca_2(password)==false || cerca_pd(password)==false || cerca_consec(password)==false)
{
conta=0;
while(conta<dim)
{
/*valorizza l'array password con numeri da 1 a 9*/
password[conta]=rand()%9+1;
conta++;
}
}
/*visualizza l'array*/
for(int i=0;i<dim;i++)
cout<<password[i]<<" ";
cout<<endl;
}
Post Views: 264