矩形打印数字,小小的体积,大大的智慧,方法多多!这个夏天,有java陪伴。

package cn.wang.day05;

import java.util.Scanner;

/**

  • @author WangShiwu
    2.输入一个数,输出正方形。 例如: 输入:4
    1 2 3 4
    8 7 6 5
    9 10 11 12
    16 15 14 13
    */
    public class Demo练习2_02 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println(“请输入数值:”);
    int n = sc.nextInt();
    // 单独打印矩形数阵,传统方法,行数和字数个数为循环
    /*int a = 0;//定义数初始的值为0;
    for (int i = 1; i <= n; i++) {//一共有n行,进行n行的循环

     	if (i % 2 != 0) {//判断是不是奇数行,是的话,进行以下语句
     		for (int j = 1; j <= n; j++) {//因为是正方形,所以n行n列
     			a++;//a从0开始自加打印出来
     			System.out.print(a + "\t");//输出定义的a的值
     		}
     	} else {//这是偶数行,进行偶数行的操作
     		for (int j = n; j >= 1; j--) {//也是n列,但是由于值从大到小变化,所以调用了j的值
     			int b = a;//定义一个变量b,每次重新赋值,使得基数从a(a承继了上面的值)开始加,保持a不变
     			b += j;//承接上面的最大值加上本次循环数。
     			System.out.print(b + "\t");//打印输出循环体的数
     		}
     		a += n;//将a赋值,返回奇数行,奇数行里a的值重新定义打印。
     	}
     	System.out.println();
     }
     System.out.println("=======================");*/
     
     
      //法 2  直接使用推理公式
     /*for(int i = 1;i <= n ;i++) {
     	for(int j = 1; j <= n;j++) {
     		if(i % 2 != 0) {
     			System.out.print(j + (i - 1)*n + "\t");
     		}else {
     			System.out.print(i*n - j + 1 + "\t");
     		}
     	}
     	System.out.println();
     }
     */
    

//
// }
//}

/*
int a = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
for (int j = 1; j <= n; j++) {//输出行
a++;
System.out.print(a + “\t”);//奇数行
}
} else {
for (int j = n; j >= 1; j–) {
int b = a;
b += j;//将上一行最后一个数赋值给变量b,这样就保持了a不变
System.out.print(b + “\t”);//偶数行
}
a += n;//返回偶数行第一个数
}
System.out.println();
}*/

//

//法3 :这个方法是求出每行的最大值与最小值,找出规律,循环体打印
/变量a为倍数,从0 开始
int a = 0;
for (int i = 1; i <= n; i++) {
//如果是偶数行,就执行从大到小,依次输出。
if (i % 2 == 0) {
for (int j = n * i; j >= n * a + 1; j–) {
System.out.print(j + “\t”);
}
//如果是奇数行,就执行从小到大依次输出
} else {
for (int j = n * a + 1; j <= n * i; j++) {
System.out.print(j + “\t”);
}
}
//返回倍数加1 ,使得下个起始值承接上个数据。
a++;
System.out.println();
}
}
}
/
//法4
for(int i = 1; i <= n; i++) {

if(i % 2 != 0) {
	for(int j = n-1 ; j>= 0; j--)
		System.out.print(n * i - j + "\t");
}else {
	for(int j = 0;j<= n-1;j++) {
		System.out.print(n * i - j + "\t");
	    }
     }
  System.out.println();	
  }

sc.close();
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值