Problemă de Algoritmică: Se citește de la consolă un număr întreg. Se determină și se afișează prima cifră a acestui număr. Se numără și se afișează apoi câte cifre are acest număr. Am nevoie de schema logica și pseudocod.
Răspunsuri la întrebare
Răspuns:
Medota Recursiva
1. Citesti numarul.
2. Verifici daca este 0
- da -> nu se intampla nimic
- nu -> imparti numarul la 10 si chemi functia din nou cu noul numar
3. afisezi ultima cifra a numarului;
Exemplu C++:
void ShowDigit(int n)
{
if(n==0){ return; }
ShowDigit(n/10);
cout<<n%10;
}
Explicație:
Cu ajutorul metodei recursive, vei parcurge numarul o singura data, in cel mai eficient mod posibil.
Prin chemarea functiei din nou si afisarea rezultatului dupa aceea, parcurgi mai intai tot numarul, apoi il apelezi, ex: 123 va fi afisat drept 123. Insa, daca vrei sa afisezi numarul in oride inversa, mai intai afezi ultima cifra, iar apoi chemi functia, ex: 123 va fi afisat 321.
Exemplu :
ShowDigit(123) ->
123 nu este e 0 ->
ShowDigit(12) // 123/10 = 12 ->
12 nu este 0 ->
ShowDigit(1) // 12/10 = 1 ->
1 nu est e 0 ->
ShowDigit(0) // 1 /0 = 0 ->
0 este 0 ->
afisam 1%10 = 1
afisam 12 %10 = 2
afisam 123 % 10 = 3