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

Cerința
Se citește un număr n și apoi n numere naturale. Să se verifice pentru fiecare număr dacă este pătrat perfect.

Date de intrare
Programul citește de la tastatură numărul n și n numere naturale.

Date de ieșire
Programul va afișa DA sau NU pe câte o linie dacă numărul citit este sau nu pătrat perfect.

Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000.000

Exemplu
Intrare

5
21 3 9 16 25
Ieșire

NU
NU
DA
DA
DA
Explicație
S-au citit 5 numere, s-a verificat dacă sunt pătrate perfecte și s-a afișat răspunsul corespunzător.

Răspunsuri la întrebare

Răspuns de artur99
19

Pur și simplu afișezi textul după ce citești fiecare număr și verifici. Nu trebuie să le afișezi după numaidecât.


#include <iostream>

#include <math.h>

using namespace std;


int main(){

   int n, k, i;

   cin>>n;

   for(i = 0; i < n; i++){

       cin>>k;

       if(sqrt(k) == int(sqrt(k))) cout<<"DA"<<endl;

       else cout<<"NU"<<endl;

   }

}



Sau, dacă insiști să le stochezi la sfârșit, poți ține într-un vector numerele, să zicem 1 dacă trebuie afișat DA, și 0 dacă trebuie afișat NU.

v[1000], să zicem, și în for pui:

       if(sqrt(k) == int(sqrt(k))) v[i] = 1;

       else v[i] = 0;


Și la sfârșit faci iar un for, și dacă v[1] e 1, afișezi DA, altfel afișezi NU.

Alte întrebări interesante