Informatică, întrebare adresată de GeorgeMihai22, 8 ani în urmă

Am 3 probleme!

1)Se da n numar natural.
Calculati recursiv produsul cifrelor nenule din n.
Ex: n=2018--> 16

2) Calculati recursiv nr de numere prime <=n.
Ex: n=10-->4

3) Calculati recursiv: 1+2+2^2+...+2^n
Ex: n=3-->15

Răspunsuri la întrebare

Răspuns de Daniel4761
2

#include <iostream>

using namespace std;

int produs(int n){

if(n)

 if(n%10!=0) return n%10*produs(n/10);

 else return produs(n/10);

else return 1;

}

int prime(int n){

if(n>1){ int prim=1;

 for(int i=2;i<=n/2;i++)

  if(n%i==0) prim=0;

 if(prim) return 1+prime(n-1);

 else return prime(n-1);

}

else return 0;

}

int suma(int n){

if(n){ int p=1;

 for(int i=1;i<=n;i++)

  p=p*2;

 return p+suma(n-1);

}

else return 1;

}

int main()

{

int n;

cin>>n;

cout<<"Suma cifrelor nenule:"<<produs(n)<<'\n';

cout<<"Numarul de numere prime:"<<prime(n)<<'\n';

cout<<"Suma:"<<suma(n);

return 0;

}

Alte întrebări interesante