Informatică, întrebare adresată de mili69, 9 ani în urmă

Pentru un număr natural cu cel mult 9 cifre, sa se determine numărul de cifre distincte din care se compune.
Ex: 13221 are 3 cifre distincte
.
Eu am încercat asa, dar nu imi da bine. Cred ca e incompleta sau are mici greșeli.

Anexe:

Răspunsuri la întrebare

Răspuns de Cactus
3
#include <iostream>
using namespace std;
int nr,x,c=0,y,i;
int cif(int x)
{   
for(i=1;i<=9;i++)   
 {        y=x;       
          nr=0;       
         while(y!=0)       
          {           
                if(y%10==i)             
                  nr++;           
                  y=y/10;
        }       
              if(nr!=0)           
              c++;   
       }   
 return c;
}

int main()
{    cin>>x;   
cout<<cif(x);   
return 0;


In programul tau c-ului ii dadeai valoarea 0 de fiecare data cand crestea valoarea lui i. Asa ai pierdut numarul cifrelor. Si conditia if(nr>1) e gresit deoarece nr poate fi si doar 1 nu neaparat strict mai mare 

mili69: Mulțumesc mult! Am verificat-o si e bine :)
stassahul: De ce 0 are 0 cifre??
stassahul: In fine rezolvarea e de nota 9, macar ceva )).
Cactus: pentru ca in programul de mai sus i incepe de la 1 nu de la 0
stassahul: Pai ce are cu restrictia mea, daca in programul tau x=0, consola afiseaza 0, dar ar trebuie sa afiseze 1
Cactus: Pentru asta eu as pune o conditie separata: if(x==0) return 1;
Cactus: Asta era cea mai mare problema in rezolvarea mea
Alte întrebări interesante