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;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!