JavaStudy——0084:細菌的繁殖與擴散
阿新 • • 發佈:2018-11-15
總時間限制: 1000ms 記憶體限制: 65536kB
描述
在邊長為9的正方形培養皿中,正中心位置有m個細菌。假設細菌的壽命僅一天,但每天可繁殖10個後代,而且這10個後代,有兩個分佈在原來的單元格中,其餘的均勻分佈在其四周相鄰的八個單元格中。求經過n(1≤n≤4)天后,細菌在培養皿中的分佈情況。
輸入
輸入為兩個整數,第一個整數m表示中心位置細菌的個數(2 ≤ m ≤ 30),第二個整數n表示經過的天數(1 ≤ n ≤ 4)。
輸出
輸出九行九列整數矩陣,每行的整數之間用空格分隔。整個矩陣代表n天后細菌在培養皿上的分佈情況。
樣例輸入
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
Accepted程式碼
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int[][] a=new int[11][11];
int m=in.nextInt();
int n=in.nextInt();
a[5][5]=m;
for(int i=1;i<=n;i++) {
int [][] b=new int[11][11];
for(int j=5-n;j<=5+n;j++) {
for(int k=5-n;k<=5+n;k++) {
for(int x=j-1;x<=j+1;x++) {
for(int y=k-1;y<=k+1;y++) {
b[x][y]+=a[j][k];
}
}
}
}
for(int p=5-n;p<=5+n;p++) {
for(int q=5-n;q<=5+n;q++) {
a[p][q]+=b[p][q];
}
}
}
for(int i=1;i<=9;i++) {
for(int j=1;j<=9;j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
in.close();
}
}