正整数n型方阵

正整数n型方阵(不用数组完成)

一般呢这种n型方阵很多人都是用数组完成,今天呢小编就用简单的循环控制结构来完成,不需用到数组。
题目
从键盘输入一个正整数n,根据n形成一个方阵。方阵最外层是第一层,每层上用的数字与层数相同。
如输入3,则方阵为:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

题目规律:

(1)n型方阵有2n-1行,2n-1列
(2)在两层循环里i代表行j代表列;n型方阵以第n行第n列为对称轴,上下左右四个角对称,这是很重要的规律。
(3)代码块分析
(对应代码块看比较清晰)
分为五大模块:
第一模块:第n行时的情况,第n行呢以第n列为中心,左右列上的数字对称,第n行第1到n列的输出,此时第几列上的数字为列数,j此时代表列,在j小于等于n的情况下j++输出了第n行第1~n列的情况;第n行第(n+1)到(2n-1)列的输出,j此时在这里代表列数,但又因为第(n+1) 到(2n-1)列上的数字跟第1到n列对称,所以要通过j的变换来得到第(n+1)到(2n-1)列上的数字,可是又不能影响j在这里代表的内循环,故下面的变量的t就有作用啦。
第二模块:第1到n行的情况,也是以第n列为中心,左右列上的数字对称,也就是说在同一行所对称的列数上的数字相等。
第1到n列的情况j代表列,i代表行,当列数大于行数时,输出i(行数号),也就是说此时i为这一列上对应方阵的数字, 当列数小于行数时,输出j(列数号),也就是说此时j为这一列上对应方阵的数字 。
第三模块:第1到n行第n到(2n-1)列的情况,为了方便确定第n到(2n-1)列上对应的方阵数字,在这里第n到(2n-1)列看成第(n-1)~1列,即从右边来看列数即这个时候在这个情况里从右边开始算起从第一列开始,所以此时j既代表列数又代表这一列所对应的方阵的数字。j代表列,i代表行,当列数大于行数时,输出i(行数号),也就是说此时i为这一列上对应方阵的数字 ;当列数小于行数时,输出j(列数号),也就是说此时j为这一列上对应方阵的数字。
第四模块: 第(n+1)到(2n-1)行第1到n列的情况。
第五个:第(n+1)到(2n-1)行第n~(2n-1)列的情况。

代码块:(对应代码解析)

import java.util.Scanner;
public class fanzheng {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
	Scanner input= new Scanner(System.in);
	System.out.println("请输入一个正整数:");
	int n=input.nextInt();//n型方阵有2n-1行,2n-1列
	for(
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值