我编写了一个程序来检查国王可以在 K 步中移动的位置数。我有一个大小为 8×8 的棋盘,行和列从 1 到 8 标记。假设我们的国王在位置 1,3;他可以移动到 5 个新位置,并且可能会保持在当前位置,因此我们的国王总体上可以移动到 6 个位置。我们的国王可以移动的新位置的有效性可以通过公式来检查Square(r'-r)+Square(c'-c)<=2wherer'和c'are 要检查的单元格的位置。
我的代码适用于 K=1 和 2,但结果开始偏离 3 个或更多 K 值。
import java.util.Scanner;
class Chess {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int testCases;
testCases = input.nextInt();
while (testCases-- > 0 && testCases <= 512) {
int R, C, K, count = 0;
R = input.nextInt();
C = input.nextInt();
K = input.nextInt();
if (R >= 1 && R <= 8 && C <= 8 && C >= 1 && K <= 8 && K >= 1) {
for (double rowIndex = 1; rowIndex <= 8; rowIndex++) {
for (double columnIndex = 1; columnIndex <= 8; columnIndex++) {
if (Math.pow((rowIndex - R), 2) + Math.pow((columnIndex - C), 2) <= (2 * Math.pow(K, 2))) {
count++;
}
}
}
}
System.out.println(count);
}
}
}
慕的地10843
翻阅古今
相关分类