• 1005. 数独——java


    题目描述

    数独游戏,具体规则如下:

    每一行都用到1,2,3,4,5,6,7,8,9, 位置不限,

    每一列都用到1,2,3,4,5,6,7,8,9, 位置不限,

    每3*3的格子(共9个这样的格子)都用到1,2,3,4,5,6,7,8,9, 位置不限,

    游戏过程就是用1,2,3,4,5,6,7,8,9填充空白,并满足每行,每列,每个九宫格都用到1,2,3,4,5,6,7,8,9,

    如下是个正确的sudoku:

    数独

    输入格式

    输入n个数独,你来验证它是否违反规则。

    第一行为数独个数,第二行开始为第一个数独,之后第二个,至第n个。

    注意:每个数独间有个回车隔开。

    输出格式

    若正确则输出"Right",否则输出"Wrong", 输出一个换一行。

    说明

    1<=n<=20(输入的数独个数)

    不论输入的数独是否正确,数据保证每个数都在1-9间。

    Sample Input

    2
    5 8 1 4 9 3 7 6 2
    9 6 3 7 1 2 5 8 4
    2 7 4 8 6 5 9 3 1
    1 2 9 5 4 6 3 7 8
    4 3 6 1 8 7 2 9 5
    7 5 8 3 2 9 1 4 6
    8 9 2 6 7 1 4 5 3
    6 1 5 9 3 4 8 2 7
    3 4 7 2 5 8 6 1 9
    
    1 2 3 4 5 6 7 8 9
    2 3 4 5 6 7 8 9 1
    3 4 5 6 7 8 9 1 2
    4 5 6 7 8 9 1 2 3
    5 6 7 8 9 1 2 3 4
    6 7 8 9 1 2 3 4 5
    7 8 9 1 2 3 4 5 6
    8 9 1 2 3 4 5 6 7
    9 1 2 3 4 5 6 7 8
    

    Sample Output

    Right
    Wrong

    这道题就是普通的数独判断很和简单,就是没有重复的数字就行
    代码如下
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class Main {
    
    	private static Scanner in;
    
    	public static void main(String[] args) {
    		in = new Scanner(System.in); 
    		int n = in.nextInt();
    		outer:
    		for(int t=0;t<n;t++){
    			int factor[][]=new int[9][9];
    			for(int i=0;i<9;i++){
    				for(int j=0;j<9;j++){
    					factor[i][j]=in.nextInt();
    				}
    			}
    			for(int i=0;i<9;i+=3){
    				for(int j=0;j<9;j+=3){
    					int s[]=new int[9];
    					int f=0;
    					for(int h=i;h<i+3;h++){
    						for(int k=j;k<j+3;k++){
    							s[f]=factor[h][k];
    							f++;
    						}
    					}
    					Arrays.sort(s);
    					for(int h=0;h<8;h++){
    						if(s[h]==s[h+1]){
    							System.out.println("Wrong");
    							continue outer;
    						}
    					}
    				}
    
    			}
    			for(int i=0;i<9;i++){
    				int s[]=new int[9];
    				for(int j=0;j<9;j++){
    					s[j]=factor[i][j];
    				}
    				Arrays.sort(s);
    				for(int h=0;h<8;h++){
    					if(s[h]==s[h+1]){
    						System.out.println("Wrong");
    						continue outer;
    					}
    				}
    				
    			}
    			for(int i=0;i<9;i++){
    				int s[]=new int[9];
    				for(int j=0;j<9;j++){
    					s[j]=factor[j][i];
    				}
    				Arrays.sort(s);
    				for(int h=0;h<8;h++){
    					if(s[h]==s[h+1]){
    						System.out.println("Wrong");
    						continue outer;
    					}
    				}
    			}
    			System.out.println("Right");
    		}
    	}
    
    }
    

      

  • 相关阅读:
    python学习笔记
    【JavaScript】如何判断一个对象是未定义的?(已解决)
    【Eclipse】一个简单的 RCP 应用 —— 显示Eclipse 的启动时间。
    Win7 系统如何关闭休眠功能?(已解决)
    【Eclipse】Ubuntu 下菜单栏失效了,怎么办?(已解决)
    【Ubuntu】更新系统时出现Hash校验和不符的错误(已解决)
    【wget】一条命令轻松备份博客(包括图片)
    【Eclipse】启动时报错:No Java virtual machine (已解决)
    git 命令自动补全
    快马和慢马
  • 原文地址:https://www.cnblogs.com/969059506-java/p/3793382.html
Copyright © 2020-2023  润新知