There is a colony of 8 cells arranged in a straight line where each day every cell competes with its adjacent cells (neighbour). Each day, for each cell, if its neighbours are both active and both inactive, the cell becomes inactive the next day, otherwise it becomes active the next day. Assumptions: The two cells on the ends have single adjacent cell, so the other adjacent cell can be assumed to be always inactive. Even after updating the cell state. Consider its previous state for updating the state of other cells. Update the cell information of all cells simultaneously. Write a function cell Compete which takes one 8 element array of integer’s cells representing the current state of 8 cells and one integer days representing the number of days to simulate. An integer value of 1 represents an active cell and value of 0 represents an inactive cell. Existing Program int* cellCompete(int* cells,int days) {/ /write your code here } //function signature ends

Cognizant Previous Year Papers and study materials 2021




There is a colony of 8 cells arranged in a straight line where each day every cell competes with its adjacent cells (neighbour). Each day, for each cell, if its neighbours are both active and both inactive, the cell becomes inactive the next day, otherwise it becomes active the next day. Assumptions: The two cells on the ends have single adjacent cell, so the other adjacent cell can be assumed to be always inactive. Even after updating the cell state. Consider its previous state for updating the state of other cells. Update the cell information of all cells simultaneously. Write a function cell Compete which takes one 8 element array of integer’s cells representing the current state of 8 cells and one integer days representing the number of days to simulate. An integer value of 1 represents an active cell and value of 0 represents an inactive cell. 



Existing Program int* cellCompete(int* cells,int days)


 {/ /write your code here }



 //function signature ends 




Solution​:

 

#include<iostream>

 

using namespace std;

 

int cellCompete(int *cells ,int day){

 

//write your code here

 

for (int i=0;i<day;i++){

 

cells[-1]=0; //assumptions

 

cells[8]=0;//assumptions

 

int u[8]; //another array to copy value

 

for (int i=-1;i<9;i++){

 

u[i]=cells[i];

 

}

 

for(int j=0;j<8;j++){

 

if(u[j-1]==u[j+1]){ //comparing the value of the neighbouring cells of u[]

 

cells[j]=0; //changing value of cell according to condition

 

}

 

else

 

cells[j]=1;

 

} }

 

for (int i=0;i<8;i++){

 

cout<<cells[i];

 

}

 

return 0;}

 

int main(){ //main function

 

int days,cells[]={1,0,0,0,0,1,0,0}; //array to pass through function


int *cellsptr=cells; //creating array values to pointer cout<<"enter days:"; //for days cin>>days;


cout<<"n[1,0,0,0,0,1,0,0]n";


cellCompete(cellsptr, days); //passing to function


return 0;


}




Comments