`

拉丁方阵

 
阅读更多
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();
		}

	}

}

 

0
4
分享到:
评论

相关推荐

    拉丁方阵检测c语言设计

    根据给定的文件信息,我们可以总结出以下关于“拉丁方阵检测C语言设计”的相关知识点: ### 一、拉丁方阵的基本概念 拉丁方阵是一种特殊的方阵,它由n×n个单元格组成,其中每个单元格内含有1到n的不同整数,而且...

    C语言实例 拉丁方阵

    构造拉丁方阵的方法很多,这里给出最简单的一种方法。观察给出的例子,可以发现:若将每 一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到N顺序构成;对于第i行,这个环的开始数字为i。按照 ...

    拉丁方阵共24页.pdf.zip

    拉丁方阵是一种在数学,尤其是组合数学领域中广泛研究的结构,它是由n×n个不同的元素组成的矩阵,其中每个元素出现且仅出现一次。在本资料“拉丁方阵共24页.pdf.zip”中,我们可以期待深入探讨这一概念。 拉丁方阵...

    拉丁方阵【小甲鱼-数据结构-第20讲】

    拉丁方阵【小甲鱼-数据结构-第20讲】 拉丁方阵是一个n*n的方阵,方阵中恰有n种不同的元素,每种元素有n个,并且每种元素在一行一列只出现一次

    拉丁方阵 latin 方阵 源码 c++

    以下为时间: // (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代码-java拉丁方阵

    Java代码实现拉丁方阵是一种有趣的数学问题,它在编码领域有着独特的应用,特别是在密码学、随机数生成和通信等领域。拉丁方阵是一个n×n的矩阵,其中每个单元格包含从1到n的一个数字,每行和每列的数字都不重复。这...

    一类非线性较高的拉丁方阵

    所谓拉丁方阵,是指一个n×n的数组,其中的数字1到n在每一行和每一列中恰好出现一次。它不仅在数学领域有研究,在信息安全、编码理论和统计试验设计等多个方面都具有重要的应用价值。 在密码算法设计中,拉丁方阵因...

    latsq(N):拉丁方阵-matlab开发

    latsq - 拉丁广场M = latsq(N) 创建一个大小为 N×N 的拉丁方格,其中包含从1到N的数字。N应该是一个正整数。 大小为 N 的拉丁方格是一个 N×N 矩阵,其中填充了 N 个不同的以这样的方式使每个数字在每一行中恰好...

    算法竞赛常见的算法源代码,包括背包问题、队列、迪杰斯特拉算法等50个算法,都可以正确运行。

    最常见的算法的源代码的集合,包括最短路径、最长公共子序列、全排列、拉丁方阵、积水数量、迷宫问题、复杂的整数划分、汉诺塔、二分图、博弈、部分和问题、0-1背包问题、0-1硬币问题、公共子序列等50个算法的源码及...

    方阵相乘C代码

    全C代码书写的关于方阵相乘的代码,适合刚学习完C语言的人使用~

    数独游戏是一款源自18世纪瑞士的数学逻辑游戏,后在美国发展并在日本得以发扬光大 以下是关于数独游戏的详细介绍: 定义与规则 定

    19世纪80年代,美国的退休建筑师格昂斯(Howard Garns)根据拉丁方阵发明了一种填数趣味游戏,即数独的雏形。 20世纪70年代,数独在美国纽约的益智杂志《Math Puzzles and Logic Problems》上首次被公众所知。 1984...

    C++ 经典编程题 如二叉树等

    本资源集锦涵盖了C++经典编程题目,涵盖数据结构与算法领域,包括了二叉树、拉丁方阵、矩阵填充、进制转换、方阵打印等多个方面的知识点。这些题目涵盖了C++编程的多个方面,涉及到算法设计、数据结构实现、编程技巧...

    回溯法之拉丁矩阵问题.zip

    换句话说,拉丁矩阵是拉丁方阵的一种特殊情况,它要求除了行约束和列约束外,还要求主对角线上的元素也不能重复。拉丁矩阵问题是一个经典的组合问题,可以利用回溯法来求解。 回溯法的基本步骤如下: 1. **定义状态...

    C入门76题

    2. **验证拉丁方阵:** 检查每行和每列是否符合拉丁方阵的要求。 3. **统计个数:** 在生成过程中记录符合条件的拉丁方阵的数量。 ### 知识点五:十进制到N进制的转换 **题目解析:** 题目要求编写程序将输入的一...

    76道高难度CC编程题.pdf

    编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。 知识点: * 数组:使用C++的数组来存储拉丁方阵的数据。 * 循环语句:使用C++的for循环来生成拉丁方阵。 题目5:十进制转换 输入一个十...

    Java入门题目集合

    4. **拉丁方阵**:拉丁方阵的生成可以使用回溯法或者深度优先搜索(DFS)实现。定义一个二维数组,初始化为1到N的数字,然后检查每一步是否符合拉丁方阵的条件。如果不符合,就回溯到上一步,尝试其他可能。这个过程...

    论文研究-基于Jerk的常增益目标跟踪及其自适应算法.pdf

    实验结果表明,利用辅助矩阵,该算法和劳伯利算法、哈利算法相比,解决了偶数阶魔方阵无法求解的问题,和利用希腊拉丁方阵算法相比,可实现全部偶数阶魔方阵的求解;另一方面,该算法在奇数阶魔方阵求解时具有相同...

Global site tag (gtag.js) - Google Analytics