import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 拉丁方阵要求:实现任意阶拉丁矩阵的存储和输出拉丁矩阵是一种规则的数值序列,例如4 阶的拉丁矩阵如下所示:
* 1 2 3 4
* 2 3 4 1
* 3 4 1 2
* 4 1 2 3
*
* @author 够潮
*
*/
public class Demo8 {
/**
* @param args
*/
public static void main(String[] args) {
InputStreamReader rs = new InputStreamReader(System.in);
BufferedReader bs = new BufferedReader(rs);
String tr =null;//保存键盘输入的数
int step = 0 ;//阶数
try {
tr = bs.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(tr==null || tr.equals("")){
System.out.println("请输入阶数");
try {
tr = bs.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(tr!=null && !tr.equals("")){
step = Integer.parseInt(tr);
}
//int n = 4;
int[][] arr = new int[step][step];
int data; //数值
//循环赋值
for(int row = 0;row < arr.length;row++){
for(int col = 0;col <arr[row].length;col++){
data = row + col + 1;//等于 行号+列号+1
if(data <= step){
arr[row][col] = data;
}
else{
arr[row][col] = data %step;
}
}
}
//输出数组的值
for(int row = 0;row < arr.length;row++){
for(int col = 0;col <arr[row].length;col++){
System.out.print(arr[row][col]);
System.out.print(' ');
}
System.out.println();
}
}
}
分享到:
相关推荐
根据给定的文件信息,我们可以总结出以下关于“拉丁方阵检测C语言设计”的相关知识点: ### 一、拉丁方阵的基本概念 拉丁方阵是一种特殊的方阵,它由n×n个单元格组成,其中每个单元格内含有1到n的不同整数,而且...
构造拉丁方阵的方法很多,这里给出最简单的一种方法。观察给出的例子,可以发现:若将每 一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到N顺序构成;对于第i行,这个环的开始数字为i。按照 ...
拉丁方阵是一种在数学,尤其是组合数学领域中广泛研究的结构,它是由n×n个不同的元素组成的矩阵,其中每个元素出现且仅出现一次。在本资料“拉丁方阵共24页.pdf.zip”中,我们可以期待深入探讨这一概念。 拉丁方阵...
拉丁方阵【小甲鱼-数据结构-第20讲】 拉丁方阵是一个n*n的方阵,方阵中恰有n种不同的元素,每种元素有n个,并且每种元素在一行一列只出现一次
以下为时间: // (all __int64) to compute the 7 * 7 it took 191.344000 seconds // (all __int64) and find the correct answer = 61479419904000 . // (all __int64) after delete the print for ans % 1000000 ...
Java代码实现拉丁方阵是一种有趣的数学问题,它在编码领域有着独特的应用,特别是在密码学、随机数生成和通信等领域。拉丁方阵是一个n×n的矩阵,其中每个单元格包含从1到n的一个数字,每行和每列的数字都不重复。这...
所谓拉丁方阵,是指一个n×n的数组,其中的数字1到n在每一行和每一列中恰好出现一次。它不仅在数学领域有研究,在信息安全、编码理论和统计试验设计等多个方面都具有重要的应用价值。 在密码算法设计中,拉丁方阵因...
latsq - 拉丁广场M = latsq(N) 创建一个大小为 N×N 的拉丁方格,其中包含从1到N的数字。N应该是一个正整数。 大小为 N 的拉丁方格是一个 N×N 矩阵,其中填充了 N 个不同的以这样的方式使每个数字在每一行中恰好...
最常见的算法的源代码的集合,包括最短路径、最长公共子序列、全排列、拉丁方阵、积水数量、迷宫问题、复杂的整数划分、汉诺塔、二分图、博弈、部分和问题、0-1背包问题、0-1硬币问题、公共子序列等50个算法的源码及...
全C代码书写的关于方阵相乘的代码,适合刚学习完C语言的人使用~
19世纪80年代,美国的退休建筑师格昂斯(Howard Garns)根据拉丁方阵发明了一种填数趣味游戏,即数独的雏形。 20世纪70年代,数独在美国纽约的益智杂志《Math Puzzles and Logic Problems》上首次被公众所知。 1984...
本资源集锦涵盖了C++经典编程题目,涵盖数据结构与算法领域,包括了二叉树、拉丁方阵、矩阵填充、进制转换、方阵打印等多个方面的知识点。这些题目涵盖了C++编程的多个方面,涉及到算法设计、数据结构实现、编程技巧...
换句话说,拉丁矩阵是拉丁方阵的一种特殊情况,它要求除了行约束和列约束外,还要求主对角线上的元素也不能重复。拉丁矩阵问题是一个经典的组合问题,可以利用回溯法来求解。 回溯法的基本步骤如下: 1. **定义状态...
2. **验证拉丁方阵:** 检查每行和每列是否符合拉丁方阵的要求。 3. **统计个数:** 在生成过程中记录符合条件的拉丁方阵的数量。 ### 知识点五:十进制到N进制的转换 **题目解析:** 题目要求编写程序将输入的一...
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。 知识点: * 数组:使用C++的数组来存储拉丁方阵的数据。 * 循环语句:使用C++的for循环来生成拉丁方阵。 题目5:十进制转换 输入一个十...
4. **拉丁方阵**:拉丁方阵的生成可以使用回溯法或者深度优先搜索(DFS)实现。定义一个二维数组,初始化为1到N的数字,然后检查每一步是否符合拉丁方阵的条件。如果不符合,就回溯到上一步,尝试其他可能。这个过程...
实验结果表明,利用辅助矩阵,该算法和劳伯利算法、哈利算法相比,解决了偶数阶魔方阵无法求解的问题,和利用希腊拉丁方阵算法相比,可实现全部偶数阶魔方阵的求解;另一方面,该算法在奇数阶魔方阵求解时具有相同...