(拉丁正方形)拉丁正方形是一个 nXn 的数组,由 n 个不同的拉丁字母填充,每个拉丁字母恰好 只在每行和每列中出现一次。编写一个程序,提示用户输人数字 n 以及字符数组,如示例输出 所示,检测该输出数组是否是一个拉丁正方形。字符是从 A 开始的前面 n 个字符。
区块链毕设网qklbishe.com为您提供问题的解答
(拉丁正方形)拉丁正方形是一个 nXn 的数组,由 n 个不同的拉丁字母填充,每个拉丁字母恰好 只在每行和每列中出现一次。编写一个程序,提示用户输人数字 n 以及字符数组,如示例输出 所示,检测该输出数组是否是一个拉丁正方形。字符是从 A 开始的前面 n 个字符。
package com.open.lab; import java.util.Scanner; public class Demo5_14 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter number n:"); int n = sc.nextInt(); if (n == 0) { System.out.println("WRONG INPUT"); } char[][] arr = new char[n][n]; System.out.println("Enter " + n + " rouws of letters separated by spaces:"); for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[0].length; j++) { arr[i][j] = sc.next().charAt(0); } } isLatin(arr); } private static void isLatin(char[][] arr) { if (exist(arr)) { int[] count = new int[arr.length]; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[0].length; j++) { count[i]+=arr[i][j] - 'A'; } } int[] sum = new int[arr[0].length]; for (int j = 0; j < arr[0].length; j++) { for (int i = 0; i < arr.length; i++) { sum[j]+=arr[i][j] - 'A'; } } for (int i = 0; i < sum.length; i++) { if (sum[i] != add1(sum) || count[i] != add1(count)) { System.out.println("The input array is NOT a Latin square"); return; } System.out.println("The input array is a Latin square"); return; } }else { System.out.println("WRONG INPUT :MUST BE" + " A" + " to" + (char) ('A' + arr.length - 1)); } } private static int add1(int[] sum) { int he = 0; for(int n = sum.length-1;n>=0;n--){ he=he+n; } return he; } private static boolean exist(char[][] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[0].length; j++) { if (arr[i][j] < 'A' || arr[i][j] > (char)('A' + arr.length - 1)) { return false; } } } return true; } }
58:25
以上就是关于问题(拉丁正方形)拉丁正方形是一个 nXn 的数组,由 n 个不同的拉丁字母填充,每个拉丁字母恰好 只在每行和每列中出现一次。编写一个程序,提示用户输人数字 n 以及字符数组,如示例输出 所示,检测该输出数组是否是一个拉丁正方形。字符是从 A 开始的前面 n 个字符。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训