Buna!
Incerc sa inteleg recursivitatea. Imi puteti explica aceasta functie recursiva?? Eu nu inteleg unde are loc incrementarea, cand algoritmul gaseste o cifra egala cu zero.
#include
using namespace std;
int nr_cif_zero (int n)
{
if (n==0)
return 1;
if (n<10 && n!=0)
return 0;
else
{
if (n%10==0) return (1+nr_cif_zero(n/10));
if (n%10!=0) return nr_cif_zero(n/10);
}
}
int main()
{
int n;
cin>>n;
cout<
return 0;
}
Multumesc!
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
Functia returneaza numarul de cifre egale cu 0 dintr-un numar.
Explicație:
O sa redenumesc functia ta f(n), in loc de nr_cif_zero(n).
Sa zicem ca ai numarul n = 3090080.
Ai pe rand:
- f(3090080) = 1 + f(309008)
- f(309008) = f(30900)
- f(30900) = 1 + f(3090)
- f(3090) = 1 + f(309)
- f(309) = f(30)
- f(30) = 1 + f(3)
- f(3) = 0
Dupa ai obtinut f(3) = 0, poti calcula f(30) = 1 + f(3) = 1 + 0 = 1.
Apoi, f(309) = f(30) = 1.
Apoi, f(3090) = 1 + f(309) = 2.
Si tot asa.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Istorie,
9 ani în urmă
Istorie,
9 ani în urmă