在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n(1≤n≤4)天后,细菌在培养皿中的分布情况。
2 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 2 4 2 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
//Geeksun 2017.11.19 17:18
#include <stdio.h>
int main()
{
int A[9][9]={0},B[9][9]={0};
int day,i,j,k,l,m;
int locate1[8]={-1,0,1,1,1,0,-1,-1};
int locate2[8]={-1,-1,-1,0,1,1,1,0};
scanf("%d %d",&A[4][4],&day);
while(day--)
{
for(i = 0; i < 9; i++)
{
for(j = 0; j < 9; j++)
{
if(A[i][j]==0)
{
continue;
}
B[i][j]+= A[i][j]*2;
for(k=0; k<8; k++)
{
l = i + locate2[k];
m = j + locate1[k];
if (l>=0&& l<9&& m>=0&& m<9)
B[l][m]+= A[i][j];
}
}
}
for(i = 0; i < 9; i++)
{
for(j = 0; j < 9; j++)
{
A[i][j]= B[i][j];
B[i][j]=0;
}
}
}
for(i = 0; i < 9; i++)
{
for(j = 0; j < 9; j++)
{
printf("%d ",A[i][j]);
}
printf("\n");
}
return 0;
}