`

拉丁方阵

 
阅读更多
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语言设计

    if(a[i][j]&gt;=1&&a[i][j]) //拉丁方阵每个元素必须为正,且小于方阵长度 { for(m=0;m;m++) //判断元素不等于之前每一个元素 { //如果任意横行有相同元素,便不是拉丁方阵 if(a[i][j]==a[i][m]) ...

    C语言实例 拉丁方阵

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

    拉丁方阵【小甲鱼-数据结构-第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 ...

    拉丁方阵共24页.pdf.zip

    拉丁方阵共24页.pdf.zip

    java代码-java拉丁方阵

    java代码-java拉丁方阵

    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语言的人使用~

    论文研究-一种基于完备拉丁方的图像加密算法.pdf

    为了提高图像加密算法的安全性和减少加密中使用的拉丁方数量,提出了一种新的基于完备拉丁方的图像加密算法。通过拉丁方与图像的灰度值矩阵进行异或运算,以提高安全性;再利用完备拉丁方扩展后的矩阵与正交拉丁方对...

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

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

    Android数独

    数独起源于18世纪初瑞士数学家欧拉等人研究的拉丁方阵(Latin Square)。19世纪80年代,一位美国的退休建筑师格昂斯(Howard Garns)根据这种拉丁方阵发明了一种填数趣味游戏,这就是数独的雏形。20世纪70年代,人们...

    循环链表(完结版)

    1.循环链表的基本操作: 插入、删除、新建、销毁、查找、遍历、逆置、链表拼接、快慢指针查找中间结点; 2.几个经典的链表问题: 约瑟夫环、拉丁方阵、魔术师发牌问题、判断链表是否含有环

    LatinSquares:制作小订单拉丁方块。-开源

    生成各种类型的小阶拉丁方阵 LS 和对角拉丁方阵 DLS:LS、DLS、轴对称、双轴对称、中心对称、正交、自正交、自然顺序第一行和第一列、自转置, 结合 这里 LS 排除 DLS,轴对称排除双轴对称。 除关联方格外,所有方格...

    C/C++语言经典实用趣味程序设计编程百例精解

    拉丁方阵 59.填表格 60.1~9分成1:2:3的三个3位数 &lt;br&gt;C/C++语言经典实用趣味程序设计编程百例精解(7) &lt;br&gt;61.1~9组成三个3位的平方数 62.由8个整数形成奇特的立方体 63.减式还原 64.乘...

    C-C++语言趣味程序设计编程百例精解

    拉丁方阵 59.填表格 60.1~9分成1:2:3的三个3位数 &lt;br&gt;C/C++语言经典实用趣味程序设计编程百例精解(7) (详解收藏在)http://www.klfd.net.cn/?p=390 &lt;br&gt;61.1~9组成三个3位的平方数 62.由8个...

Global site tag (gtag.js) - Google Analytics