题目大意:要求模拟四十天后的情况
解体思路:用两个数组存储状态,用一个数组存储变化
#include<cstdio>
int ceil[42];
int dna[10];
int tem[42];
void first() {
for(int i = 0 ; i < 42; i++)
ceil[i] = 0;
ceil[20] = 1;
}
void next() {
int temp;
for(int i = 0; i < 42; i++) {
tem[i] = ceil[i];
}
for(int i = 1; i < 41; i++) {
temp = tem[i-1] + tem[i] + tem[i+1];
ceil[i] = dna[temp];
}
}
void print() {
for(int i = 1; i < 41; i++) {
if(ceil[i] == 0) printf(" ");
if(ceil[i] == 1) printf(".");
if(ceil[i] == 2) printf("x");
if(ceil[i] == 3) printf("W");
}
printf("\n");
}
int main() {
int test;
scanf("%d\n\n",&test);
while(test--) {
first();
for(int j = 0; j < 10; j++)
scanf("%d",&(dna[j]));
for(int j = 0 ; j < 50; j++) {
print() ;
next();
}
if(test) printf("\n");
}
return 0;
}