Verificările se realizează cu ajutorul unei variabile egale cu 0 în cazul negaţiei sau 1 în caz contrar.
1.Cifre egale
Pentru a verifica dacă un număr are toate cifrele egale, vom folosi o variabilă egală cu ultima cifră a numărului, apoi vom compara fiecare cifră rămasă cu aceasta. Presupunem că toate sunt egale cu ajutorul unei variabile egale cu 1, iar dacă se găseşte o cifră care nu este egală cu ultima cifră, acea variabilă va deveni 0.
Algoritmul în C++
#include
using namespace std;
int main()
{
unsigned n,c,ok=1;
cin>>n;
c=n%10;n=n/10;
while(n!=0)
{
if(n%10!=c)ok=0;
n=n/10;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}
2.Ordine crescătoare şi descrescătoare
Există 2 cazuri:
-verificaţi dacă cifrele unui număr se află în ordine crescătoare de la stânga la dreapta/descrescător de la dreapta la stânga.
În acest caz, va trebui de fapt să verificăm dacă cifra aflată la stânga de o cifră este mai mică decât aceasta.
Algoritmul în C++
#includ
using namespace std;
int main()
{
unsigned n,ok=1;
cin>>n;
while(n>9)
{
if(n/10%10>=n%10)ok=0;
n=n/10;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}
-verificaţi dacă cifrele unui număr se află descrescător de la stânga la dreapta/crescător de la dreapta la stânga
În acest caz singura diferenţă este că semnul “>=” din while devine “<="
if(n/10%10<=n%10)ok=0;
3.Munte şi vale
Faptul că un număr are aspect de munte înseamnă că acesta are cifrele de la stânga la dreapta crescătoare până la o anumită cifră, după care acestea sunt descrescătoare. De exemplu, 459421 are aspect de munte.
Algoritmul în C++
#include
using namespace std;
int main()
{
unsigned n,n1,ok=1;
cin>>n;
n1=n;
while(n>9&&n%10<n/10%10)n=n/10;
if(n==n1||n19&&n%10>n/10%10)n=n/10;
if(n>9)ok=0;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}
Faptul că un număr are aspect de vale înseamnă că acesta are cifrele de la stânga la dreapta descrescătoare până la o anumită cifră, după care acestea sunt crescătoare. De exemplu, 96478 are aspect vale.
Algoritmul în C++
#include
using namespace std;
int main()
{
unsigned n,n1,ok=1;
cin>>n;
n1=n;
while(n>9&&n%10>n/10%10)n=n/10;
if(n==n1||n19&&n%109)ok=0;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}
4.∃ şi ∀
-∃
Verificaţi dacă toate cifrele lui x sunt prime.
Algoritmul în C++
#include
using namespace std;
int main()
{
unsigned x,c,ok=1;
cin>>x;
while(x!=0)
{
c=x%10;x=x/10;
if(c!=2&&c!=3&&c!=5&&c!=7)ok=0;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}
-∀
Verificaţi dacă numărul x conţine cifre pare.
Algoritmul în C++
#include
using namespace std;
int main()
{
unsigned x,c,ok=0;
cin>>x;
while(x!=0)
{
c=x%10;x=x/10;
if(c%2==0)ok=1;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
}