用java语言重写这段代码:#include<iostream.h> #include<stdio.h> int line[8],answer=0; void show()//显示摆放的结果. { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) { if(line[i]==j) cout<<"Q"; else cout<<"*"; } cout<<endl; } answer++; cout<<endl; cout<<answer<<endl; getchar(); } int Judge(int t)//判断摆放的位置是否正确,不正确返回1,正确返回0. { int i,n=0; for(i=0;i<t;i++) { if(line[i]==line[t]) {n=1;break;} if(line[i]+i==line[t]+t) {n=1;break;} if(line[i]-i==line[t]-t) {n=1;break;} } return n; } void control(int n)//主要控制函数. { int t=8; for(line[n]=0;line[n]<t;line[n]++) { if(Judge(n)) continue; else if(n!=7) control(n+1); else show(); } } int main()//主函数. { control(0); cout<<answer<<endl; return 0; }
时间: 2024-04-02 09:33:19 浏览: 50
把 C++ 代码翻译成 Java 代码如下:
import java.util.Scanner;
public class Main {
static int[] line = new int[8];
static int answer = 0;
public static void main(String[] args) {
control(0);
System.out.println(answer);
}
static void control(int n) {
int t = 8;
for (line[n] = 0; line[n] < t; line[n]++) {
if (judge(n) == 1) {
continue;
} else if (n != 7) {
control(n + 1);
} else {
show();
}
}
}
static int judge(int t) {
int i, n = 0;
for (i = 0; i < t; i++) {
if (line[i] == line[t]) {
n = 1;
break;
}
if (line[i] + i == line[t] + t) {
n = 1;
break;
}
if (line[i] - i == line[t] - t) {
n = 1;
break;
}
}
return n;
}
static void show() {
int i, j;
for (i = 0; i < 8; i++) {
for (j = 0; j < 8; j++) {
if (line[i] == j) {
System.out.print("Q");
} else {
System.out.print("*");
}
}
System.out.println();
}
answer++;
System.out.println();
Scanner input = new Scanner(System.in);
input.nextLine();
}
}
阅读全文