解题思路:
定义一个二维数组,数组的每个值对应一个网格,当这个位置的值为 0 时,表示放有蛋糕, 值为 1 时表示没有放蛋糕。右任意两块蛋糕的欧几里得距离不能等于2,即,若(i,j)网格中放了蛋糕(arr[i] [j]= 0),则坐标(i + 2,j)(i,j+2)不能放蛋糕(arr[i+2] [j]= 1 (arr[i] [j + 2]= 1))(注:要注意i+2 j + 2 不能超过网格的范围。)
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int w = scan.nextInt();
int h = scan.nextInt();
int[][] arr = new int[w][h];
int count = 0;
for(int i = 0; i < w; i++){
for(int j = 0; j < h; j++){
if(arr[i][j] == 0){
count++;
if(i + 2 < w){
arr[i+2][j] = 1;
}
if(j + 2 < h){
arr[i][j+2] = 1;
}
}
}
}
System.out.println(count);
}
}