Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

Într-o închisoare cu n celule se află, la un moment dat, n deţinuţi. Se ia hotărârea să fie eliberaţi anumiţi deţinuţi, alegerea lor făcându-se într-un mod special. În închisoarea aceea erau tot n gardieni. Procedeul de determinare a deţinuţilor ce vor fi eliberaţi este următorul: gardianul k pleacă de la celula k şi mergând din k în k celule, schimbă starea uşilor pe la care trece,1<=k<=n. În final anumite celule vor rămâne deschise, deţinuţii respectivi fiind eliberaţi. Puteţi afla care? Iniţial toate uşile sunt închise. Exemplu: n=50 vor fi eliberati cei din celulele 1 4 9 16 25 36 49.


Utilizator anonim: adica?
Utilizator anonim: ma rog, acum afiseaza bine
Utilizator anonim: multumesc mult
artur99: pai de ex pt n=50, tu puneai in vector, cu while-ul ala elementele (1 4 9 16 25 36 49) adica 7 elemente, iar restul ramaneau cum au fost setate le declarare. Iar la sfarsit tu le afisai de la 1 la 50, deci afisai si 43 elemente care nu au fost setate
artur99: In c++ daca afisezi o variabila sau un spatiu dintr-un vector, caruia nu i-ai dat valoare o sa afiseze un nr "random" :))
artur99: cp :D
Utilizator anonim: :)
Utilizator anonim: si la problema precedenta care am pus-o ai vreo idee?
Utilizator anonim: pe care*
artur99: ma uit acu :D

Răspunsuri la întrebare

Răspuns de artur99
0
#include <iostream>
#include <math.h>
using namespace std;

int main(){
    int n, i, max;
    cin>>n;
    int v[n];

    max = floor((float)sqrt(n));

    for(i=1;i<=max;i++) v[i] = i*i;
    for(i=1;i<=max;i++) cout<<v[i]<<" ";
}
Răspuns de AntiEaglesDavids
0
Varianta mult mai rapidă:

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    for(int i=1; i*i<=n; i++) cout << i * i << ' ';
    return 0;
}


artur99: Comm. no. 4: "dar trebuie facuta vectori"
AntiEaglesDavids: si uite eu zic ca nu trebuie
artur99: :D pai asta stiu si eu :D Dar daca ea a zis ca vrea cu vectori, atunci cu vectori a fost :)))
AntiEaglesDavids: pai ue tu trebuie sa ii explici atunci ca nu e bine
AntiEaglesDavids: ea are impresia ca trebuie fiecare sir cu vecotri sau ce are in cap
AntiEaglesDavids: regula este: atunci cand poti folosi mai putina memorie fa-o
AntiEaglesDavids: aici se aplica din plin
artur99: :))) lol, cine zice? :D :D cel care face un vector cu 2kkk spatii...
artur99: lol, vere, te-am facut! =)))))
AntiEaglesDavids: pai asa trebuie :)))))
Alte întrebări interesante