Î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.
cum se face in c ?
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
#define CELULE 128 // Pot fi 50/100/etc.
using namespace std;
void main()
{
int n,i,k;
cout<<"Numarul total de detinuti/gardieni este ";cin>>n;
cout<<"Gardianul k este ";cin>>k; bool v[CELULE];
for(i=0;i<CELULE;i++) v[i] = false; // Initial toate celule sunt inchise
i=k;
while(i<CELULE) { v[i] = true; // Gardianul deschide celula k
i=k+k; // Merge "din k in k" celule }
for(i=0;i<CELULE;i++) if(v[i]) cout<<i<<" ";
}
Unde nu intelegi intreaba
#define CELULE 128 // Pot fi 50/100/etc.
using namespace std;
void main()
{
int n,i,k;
cout<<"Numarul total de detinuti/gardieni este ";cin>>n;
cout<<"Gardianul k este ";cin>>k; bool v[CELULE];
for(i=0;i<CELULE;i++) v[i] = false; // Initial toate celule sunt inchise
i=k;
while(i<CELULE) { v[i] = true; // Gardianul deschide celula k
i=k+k; // Merge "din k in k" celule }
for(i=0;i<CELULE;i++) if(v[i]) cout<<i<<" ";
}
Unde nu intelegi intreaba
Alte întrebări interesante
Limba română,
9 ani în urmă
Evaluare Națională: Lb. Română ,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
#include<stdlib.h>
int main ()
{
int m,n,k;
printf("numarul de celule=");
scanf("%d", &m);
k=1;
n=1;
while (n<=m)
{
printf("%d\n",n);
k=k+2;
n=n+k;
}
}
merge si asa , multumesc :)