explicati-mi va rog de ce in urmatorul program avem n>9 si m>9 .De ce avem 9 ?
cerinta:
scrie un program care sa determine numarul de aparitii a primei cifre in scrierea unui numar natural citit de la tastatura.
#include
using namespace std;
main ( )
{
int n, m, k;
cin>>n;
m=n;
while (m>9)
m=m/10;
k=1;
while (n>9)
{
if (m==n%10)
k=k+1;
n=n/10;
}
cout<< rewturn 0;
}
Răspunsuri la întrebare
Răspuns:
Raspunsul este simplu, prima data vrea sa afle prima cifra din nr, de exemplu avem nr 123, m=123 si intra in while, atata timp cat nr format din cel putin doua cifre adica mai mare sau egal cu 10 adica mai mare decat 9, atunci m egal cu partea intreaga din m/10 adica in expemplul meu m=12. Cum acesta este mai mare decat 9, se repata operatia iar m va fi egal cu 1, deci 1 este prima cifra. La fel si in cazul lui n insa aici numarul se parcurge de la coada deoarece avem restul impartirii dintre n si 10 adica in cazul nostru, 123%10=3 deci nu este egal cu 1 iar nr este in continuare format din cel putin doua cifre deci mai avem doua cifre de verificat iar 12%10=2 si nici acesta nu este egal cu 1 insa nu mai intra in while deoarece mai avem o cifra care este chiar prima adica 1. Din acest motiv k a inceput de la 1 deoarece acesta este asigurat si nu il mai verificam. Sper ca ai inteles, daca ai intrebari, sunt aici.