Informatică, întrebare adresată de larisamogos, 9 ani în urmă

Se citeşte n şi un şir de n numere naturale.
Cerinţa

Să se afișeze elementele din șir care au proprietatea că primele două cifre din scrierea zecimală formează un pătrat perfect.
Date de intrare

Fişierul de intrare elempp.in conţine pe prima linie numărul n şi pe a doua linie n numere naturale separate prin spaţii.
Date de ieşire

Fişierul de ieşire elempp.out va conţine pe prima linie elementele din șirul dat care respectă proprietatea precizată. Ordinea acestor elemente este cea în care se află în șirul dat.
Restricţii şi precizări

1 ≤ n ≤ 20
numerele de pe a doua linie a fişierului de intrare vor fi mai mici decât 1.000.000.000 și au cel puțin două cifre

Răspunsuri la întrebare

Răspuns de ochiuverde
16
aici e sursa in c++ in care nici macar nu ai nevoie de vector. pur si simplu le citesti si calculezi direct.
#include <iostream>#include <cmath>using namespace std;int n,aux,a;int main(){    cin>>n;    for (int i=1;i<=n;i++) {cin>>a;aux=a;while (a>=100) a/=10; if (sqrt(a)*sqrt(a)==a) cout<<aux<<' ';}    return 0;}
asta e sursa cu vector:
#include <iostream>#include <cmath>using namespace std;int n,aux,a[21];int main(){    cin>>n;    for (int i=1;i<=n;i++) cin>>a[i];    for (int i=1;i<=n;i++)    {        aux=a[i];while (a[i]>=100) a[i]/=10; if (sqrt(a[i])*sqrt(a[i])==a[i]) cout<<aux<<' ';    }    return 0;}
in ambele variante folosesc functia sqrt pt a det radicalul intreg si se include in libraria cmath. daca ai nevoie il postez si in pseudocod

Alte întrebări interesante