Răspuns :
#include <iostream>
using namespace std;
int apare_cifra(long n,int c){
int cifra,nr=0;
while(n>0){
cifra=n%10;
if(cifra==c){
nr++;
}
n=n/10;
}
return nr;
}
int main(){
long a;
int b,i,v[10];
cout<<"Introduceti numarul:";
cin>>a;
cout<<"Introduceti cifra:";
cin>>b;
/*a) Daca apare_cifra este mai mare ca 0
atunci apare, altfel nu apare*/
if(apare_cifra(a,b)>0){
cout<<"Apare cifra"<<endl;
}
else{
cout<<"Nu apare cifra"<<endl;
}
/*b)Ca sa verificam daca are toate cifrele distincte
iteram prin toate cifrele si verificam daca numarul de aparitii este mai mare decat 1
daca este, inseamna ca numarul apare de doua ori, si atunci nu sunt distincte*/
int distinct=1;
for(i=0;i<10;i++){
if(apare_cifra(a,i)>1){
distinct=0;
break;
}
}
if(distinct>0){
cout<<"Numarul are cifre distincte"<<endl;
}
else{
cout<<"Numarul nu are cifre distincte"<<endl;
}
/*c)Iteram de la cea mai mare cifra la cea mai mica, de la 9 pana la 0
daca numarul de aparitii este mai mare ca 0, inseamna ca aceea este cea mai mare cifra*/
for(i=9;i>=0;i--){
if(apare_cifra(a,i)>0){
cout<<"Cifra cea mai mare este:"<<i<<endl;
break;
}
}
/*d)Iteram din nou de la 9 la 0. Vedem de cate ori apare fiecare numar, si apoi le aranjam in acea zona
de ex daca avem 123834, aven atunci 843321, deci 8, apoi 4, apoi 3 de doua ori cat apare in numar, apoi 2 si 1*/
int cifre_mare=0,aparitii=0;
for(i=9;i>=0;i--){
if(apare_cifra(a,i)>0){
aparitii=apare_cifra(a,i);
while(aparitii>0){
cifre_mare=10*cifre_mare+i;
aparitii--;
}
}
}
cout<<"Numarul cel mai mare cu cifrele existente:"<<cifre_mare<<endl;
/*e)Iteram prin cifrele impare si vedem daca cel putin doua cifre impare apar*/
int cifre_impare=0;
for(i=1;i<10;i=i+2){
if(apare_cifra(a,i)>0){
cifre_impare=cifre_impare+apare_cifra(a,i);
}
}
if(cifre_impare>1){
cout<<"Apar mai multe cifre impare"<<endl;
}
else{
cout<<"Nu apar mai multe cifre impare"<<endl;
}
/*f)Iteram din nou de la 0 la 9, si incrementam cu 1 de fiecare data cand gasim o cifra care apare in numar.
Daca contorul va fi mai mare ca 1, inseamna ca sunt mai multe cifre in numar, deci nu toate cifrele sunt egale*/
int nr_cifre=0;
for(i=0;i<10;i++){
if(apare_cifra(a,i)>0){
nr_cifre++;
}
}
if(nr_cifre>1){
cout<<"Nu toate cifrele sunt egale";
}
else{
cout<<"Toate cifrele sunt egale";
}
return 0;
}
using namespace std;
int apare_cifra(long n,int c){
int cifra,nr=0;
while(n>0){
cifra=n%10;
if(cifra==c){
nr++;
}
n=n/10;
}
return nr;
}
int main(){
long a;
int b,i,v[10];
cout<<"Introduceti numarul:";
cin>>a;
cout<<"Introduceti cifra:";
cin>>b;
/*a) Daca apare_cifra este mai mare ca 0
atunci apare, altfel nu apare*/
if(apare_cifra(a,b)>0){
cout<<"Apare cifra"<<endl;
}
else{
cout<<"Nu apare cifra"<<endl;
}
/*b)Ca sa verificam daca are toate cifrele distincte
iteram prin toate cifrele si verificam daca numarul de aparitii este mai mare decat 1
daca este, inseamna ca numarul apare de doua ori, si atunci nu sunt distincte*/
int distinct=1;
for(i=0;i<10;i++){
if(apare_cifra(a,i)>1){
distinct=0;
break;
}
}
if(distinct>0){
cout<<"Numarul are cifre distincte"<<endl;
}
else{
cout<<"Numarul nu are cifre distincte"<<endl;
}
/*c)Iteram de la cea mai mare cifra la cea mai mica, de la 9 pana la 0
daca numarul de aparitii este mai mare ca 0, inseamna ca aceea este cea mai mare cifra*/
for(i=9;i>=0;i--){
if(apare_cifra(a,i)>0){
cout<<"Cifra cea mai mare este:"<<i<<endl;
break;
}
}
/*d)Iteram din nou de la 9 la 0. Vedem de cate ori apare fiecare numar, si apoi le aranjam in acea zona
de ex daca avem 123834, aven atunci 843321, deci 8, apoi 4, apoi 3 de doua ori cat apare in numar, apoi 2 si 1*/
int cifre_mare=0,aparitii=0;
for(i=9;i>=0;i--){
if(apare_cifra(a,i)>0){
aparitii=apare_cifra(a,i);
while(aparitii>0){
cifre_mare=10*cifre_mare+i;
aparitii--;
}
}
}
cout<<"Numarul cel mai mare cu cifrele existente:"<<cifre_mare<<endl;
/*e)Iteram prin cifrele impare si vedem daca cel putin doua cifre impare apar*/
int cifre_impare=0;
for(i=1;i<10;i=i+2){
if(apare_cifra(a,i)>0){
cifre_impare=cifre_impare+apare_cifra(a,i);
}
}
if(cifre_impare>1){
cout<<"Apar mai multe cifre impare"<<endl;
}
else{
cout<<"Nu apar mai multe cifre impare"<<endl;
}
/*f)Iteram din nou de la 0 la 9, si incrementam cu 1 de fiecare data cand gasim o cifra care apare in numar.
Daca contorul va fi mai mare ca 1, inseamna ca sunt mai multe cifre in numar, deci nu toate cifrele sunt egale*/
int nr_cifre=0;
for(i=0;i<10;i++){
if(apare_cifra(a,i)>0){
nr_cifre++;
}
}
if(nr_cifre>1){
cout<<"Nu toate cifrele sunt egale";
}
else{
cout<<"Toate cifrele sunt egale";
}
return 0;
}