JAVA菜鸟求解:九宫格问题满足以下需求

目标: 打印一个 9*9 的九宫格
必须满足一下两个条件
条件1: 任意一行或者一列都满足9个不同的数字
条件2: 任意一个小9格正方形都满足9个不同的数字

自己尝试过的
方案1: 通过设定满足条件 无限次循环生成任意数字的矩阵 直到满足后跳出循环
结果失败:无法运行
方案2 : 做遍历处理,设定每生成一个数字都经过两种条件校验,通过设定参数times 为每一个数字的判断次数,当等于9时,退回上一个位置,并且重新生成上一个参数
结果失败: 可达到条件1 由于不满足一定的算法 达不到条件2

要求: 能够完整满足要求的完整代码

public class test {
public static void main(String[] args) {
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
System.out.print((i+j)%9+" ");
}
System.out.println();
}
}
}public class test {
public static void main(String[] args) {
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
System.out.print((i+j)%9+" ");
}
System.out.println();
}
}
}

    for(int k = 1;k<=81;k++){
        System.out.print(k+" ");
        if(k%9==0){
            System.out.println();
        }
    }

麻烦看下 条件
重申 条件2 : 9*9 方阵中 任意一个 小九宫格(3*3) 也必须满足 1-9 9个不同的数字