Se consideră subprogramul nr cu doi parametri, care primeşte prin parametrul n un număr natural cu maximum 8 cifre, şi prin parametrul c o cifră zecimală. Subprogramul va returna numărul de apariţii ale cifrei c în scrierea numărului n.

Exemplu: dacă n=15356, iar c=5, subprogramul va returna valoarea 2.

a) Scrieţi doar antetul subprogramului nr. (3p.)

b) Scrieţi programul C/C++ care citeşte de la tastatură un număr natural n, cu cel mult 8 cifre, şi afişează pe ecran numărul de cifre distincte ale numărului n. Se vor folosi apeluri utile ale funcţiei nr. (7p.)

Exemplu: pentru n=15356 se va afişa valoarea 4 deoarece numărul conţine 4 cifre distincte şi anume 1, 3, 5 şi 6.

REZOLVARE

#include<iostream.h>

int nr(long n, int c)

{ if(n)

if(n%10==c)

return 1+nr(n/10,c);

else return nr(n/10,c);

}

void main()

{ long n; int x=0,i;

cout<<"n="; cin>>n;

// printf(“n=”);scanf(“%d”,&n);

for(i=0;i<=9;i++)

if (nr(n,i))x++;

cout<<x; //printf("%d”,x);

}