ps:个人笔记
暴力法,无限大的画布!!!!!,包括坐标轴的负坐标,所以要将原始坐标横竖平移一下!!!!!!
public class Main {
public static void main(String[] args) {
long sum=0l;
char[][] array = new char[7000][7000];
array[2030][2030]='*';
array[4050][2041]='*';
array[2041][2044]='*';
array[4030][4030]='*';
for(int k=1;k<=2020;k++) {
for(int i=0;i<array.length;i++) {
for(int j=0;j<array[i].length;j++) {
if(array[i][j]=='*') {
if(i-1>=0&&array[i-1][j]!='*') array[i-1][j]='@';
if(j-1>=0&&array[i][j-1]!='*') array[i][j-1]='@';
if(i+1<array.length&&array[i+1][j]!='*') array[i+1][j]='@';
if(j+1<array[i].length&&array[i][j+1]!='*') array[i][j+1]='@';
}
}
}
for(int i=0;i<array.length;i++) {
for(int j=0;j<array[i].length;j++) {
if(array[i][j]=='@') {
array[i][j]='*';
}
}
}
}
for(int i=0;i<array.length;i++) {
for(int j=0;j<array[i].length;j++) {
if(array[i][j]=='*') {
sum++;
}
}
}
System.out.println(sum);
}
}
答案:20312088