Se da un vector format din n elemente, numere naturale. Calculati nr valorilor la care prima cifra este patrat perfect.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int i, n, v[100], x, prima_cif, k;
int main()
{
cin >> n;
for (i = 1; i<= n; i ++) cin >> v[i];
for (i = 1; i<= n; i ++) {
x = v[i];
if (x == 0) {
prima_cif = 0;
k ++;
}
while (x > 0) {
prima_cif = x%10;
x = x/10;
}
if (prima_cif == 1 || prima_cif == 4 || prima_cif == 9)
k ++;
}
cout << k;
return 0;
}
Explicație:
Programul cu comentarii:
#include <iostream>
using namespace std;
int i, n, v[100], x, prima_cif;
int main()
{
cin >> n;
for (i = 1; i<= n; i ++) cin >> v[i];
/*cifre patrat perfect: 0=0^2, 1=1^2, 4=2^2, 9=3^2
0 poate sa fie prima cifra a unui numar numai daca numarul e nul (numarul e chiar 0)*/
for (i = 1; i<= n; i ++) {
x = v[i]; //se copiaza valoare lui v[i] in x
if (x == 0) { //daca x=0 prima cifra e 0
prima_cif = 0;
k ++;
}
while (x > 0) { //algortim de aflare a primei cifre
prima_cif = x%10;
x = x/10;
}
if (prima_cif == 1 || prima_cif == 4 || prima_cif == 9)
k ++;
}
cout << k;
return 0;
}
