平方矩阵

题目描述:

输入整数 N,输出一个 N 阶的二维数组。

数组的形式参照样例。

输入格式
输入包含多行,每行包含一个整数 N。

当输入行为 N=0 时,表示输入结束,且该行无需作任何处理。

输出格式
对于每个输入整数 N,输出一个满足要求的 N 阶二维数组。

每个数组占 N 行,每行包含 N 个用空格隔开的整数。

每个数组输出完毕后,输出一个空行。

数据范围
0≤N≤100
输入样例:
1
2
3
4
5
0
输出样例:
1

1 2
2 1

1 2 3
2 1 2
3 2 1

1 2 3 4
2 1 2 3
3 2 1 2
4 3 2 1

1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1

算法1思路:由对角线元素开始写,先写行后写列
代码:
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(true){int n = in.nextInt();int[][] arr = new int[n + 1][n + 1];if(n == 0) break;for(int i = 1; i <= n;i++){for(int j = i,k = 1;j <= n;j++,k++){arr[i][j] = k;arr[j][i] = k;}}for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){System.out.print(arr[i][j] + " ");}System.out.println();}System.out.println();}}
}
算法2思路:逐行分段写数据
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(true){int n = in.nextInt();if(n == 0) break;for(int i = 1;i <= n;i++){for(int j = i;j >= 1;j--) System.out.print(j + " ");for(int j = i + 1;j <= n;j++) System.out.print(j - i + 1 + " ");System.out.println();  //注意第二个循环j的边界条件。}System.out.println();}}
}
算法3:利用规律:各点写入数据值为该点横纵坐标差值的绝对值 + 1
import java.util.*;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);while(true){int n = in.nextInt();if(n == 0) break;for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){System.out.print(Math.abs(i - j) + 1 + " ");}System.out.println();  }System.out.println();}}
}

欢迎评论!!!

平方矩阵——3种思路相关推荐

  1. display none 隐藏后怎么显示_web前端入门到实战:元素显示隐藏的9种思路

    我自己是一名从事了多年开发的web前端老程序员,目前辞职在做自己的web前端私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴 ...

  2. 第七篇:使用 CUDA 进行计算优化的两种思路

    前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...

  3. 【论文阅读】开放域问答论文总结,文本召回与问答的另一种思路

    [论文总结]开放域问答,纯文本召回与精排的另一种思路 前言 SCIVER: Verifying Scientific Claims with Evidence 任务介绍 数据样例 开放域问答 Read ...

  4. 在二维数组中寻找最小鞍点1181(该行最大值,该列最小值)(2种思路)

    题目描述 找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个! 输入要求 输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n* ...

  5. acwing——755. 平方矩阵 III

    755. 平方矩阵 III 输入整数N,输出一个N阶的二维数组M. 这个N阶二维数组满足M[i][j] = 2i+j2i+j. 具体形式可参考样例. 输入格式 输入包含多行,每行包含一个整数N. 当输 ...

  6. 单细胞分析实录(14): 细胞类型注释的另一种思路 — CellID

    之前写过一篇细胞类型注释的推文:单细胞分析实录(7): 差异表达分析/细胞类型注释,里面介绍了细胞类型注释的两种思路.在谈到自动注释时,我们基本都会用SingleR这个软件,类似的软件还有很多,原理上 ...

  7. 平方矩阵 I II III 题解

    AcWing 753. 平方矩阵 I 题目描述 AcWing 753. 平方矩阵 I 思路 每个点处的值为该位置到上下左右四个边界距离的最小值. 代码 import java.util.Scanner ...

  8. 实现在页面上隐藏某个元素的css,有趣的css—隐藏元素的7种思路

    display.visibility.opacity三个属性隐藏元素之间的异同点一直是前端面试面试的常考题. 除了display.visibility.opacity三个属性可以隐藏元素之外,是否还存 ...

  9. CSS实现垂直居中的5种思路

    前面的话 相对于水平居中,人们对于垂直居中略显为难,大部分原因是vertical-align不能正确使用.实际上,实现垂直居中也是围绕几个思路展开的.本文将介绍关于垂直居中的5种思路 line-hei ...

  10. 两种思路将Python中两个有序数组合并为一个有序数组

    第一种思路: 把两个数组合为一个数组然后再排序,问题又回归到冒泡和快排了,没有用到两个数组的有序性. 第二种思路: 循环比较两个有序数组头位元素的大小,并把头元素放到新数组中,从老数组中删掉,直到其中 ...

最新文章

  1. 用IKVMC将jar转成dll供c#调用
  2. 【Vulnhub靶机系列】DC2
  3. 垃圾分类毕设java程序_垃圾“拍一拍”,分类不用愁!生活垃圾分类查询小程序上线啦...
  4. 32添加组件_软件开发32条法则:经过实践检验的实用建议和经验教训
  5. oneinstack 部署vue项目
  6. linux源码acl,Linux自主访问控制机制模块详细分析之posix_acl.c核心代码注释与acl.c文件介绍...
  7. 机器学习、数据挖掘之中国大牛
  8. cacti linux io,【cacti】Linux磁盘I/O监控
  9. 可解释人工智能XAI
  10. nacos指定外网ip
  11. unity自定义Scene窗口
  12. 关于屏蔽MENU键,返回键,Home键等代码。
  13. 计算机设备显示感叹号,设备管理器有感叹号和问号未知设备的解决方法
  14. 抖音快手初学者如何快速成长
  15. 微信小程序“errMsg“:“openSetting:fail can only be invoked by user TAP gesture.“
  16. 抖音爆火的“弹幕互动游戏”是什么,如何搭建直播间?
  17. 统计输入字符串中大写字母、小写字母、阿拉伯数字个数和特殊符号的个数
  18. MybatisPlus整合SpringBoot全教程,用起来不要太方便
  19. Matlab中抽象类和类成员
  20. 敲代码时如何快速移动光标_HTML网页代码大全

热门文章

  1. hadoop 集群调度 Azkaban2搭建
  2. 输入法或搜索类软件评价
  3. 数据结构与算法之递归和分治思想
  4. Picasso通过URL获取--用户头像的圆形显示
  5. 在没有上传服务器端的情况下看到上传图片的效果图window.createObjectURL
  6. WEB前端性能优化及应用服务器性能优化和存储性能优化
  7. Linux下配置两个或多个Tomcat启动
  8. 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
  9. 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
  10. SnakeWords开发--Android 2.2