A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

3  3  3  3  3
3  2  2  2  3                 键盘录入3,用for循环打印出数字正方形
3  2  1  2  3
3  2  2  2  3
3  3  3  3  3

7 个回复

倒序浏览
package cn.itcast;
import java.util.Scanner;
/*通过一维数组实现,第一阶段: 键盘输入3后的结果
循环和数组
3 3 3 3 3
3 2 2 2 3
3 2 1 2 3
3 2 2 2 3
3 3 3 3 3
* */
public class Test1 {
public static void main(String[] args) {
  // 创建一个Scanner对象,并导包
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入一个数字");
  // 定义一个int类型变量num
  int num = sc.nextInt();
  // 定义数组【num * 2 - 1】限制数组元素的长度
  int[] arr = new int[num * 2 - 1];
  // 用双重for循环来遍历数组中的数据,并且利用双重for循环打印出相应的图形
  for (int i = 1; i <= arr.length; i++) {
   for (int j = 1; j <= arr.length; j++) {
    /*
     * 2 * num- (arr.length - Math.max(Math.abs(i -
     * num)求出了图形中每个位置中打印的数字,Math.abs(j - num)))代码中Math.abs(i -
     * num)是求图形的列中的最大数 Math.abs(j - num)是求行中的最大的书
     */
    System.out.print(2
      * num
      - (arr.length - Math.max(Math.abs(i - num),
        Math.abs(j - num))) + " ");
   }
   System.out.println();// 换行
  }
}
}
回复 使用道具 举报
留着慢慢看
回复 使用道具 举报
深寒丶 发表于 2015-11-21 23:13
package cn.itcast;
import java.util.Scanner;
/*通过一维数组实现,第一阶段: 键盘输入3后的结果

厉害啊,我想了很久想不出来,竟然用到了取绝对值。。。
回复 使用道具 举报
赞!!!让我想了好久!!
回复 使用道具 举报
1018chenhaiyang 发表于 2015-11-22 20:57
厉害啊,我想了很久想不出来,竟然用到了取绝对值。。。

其实这个我也没想出了,是请教了我们班主任的
回复 使用道具 举报
看来标题感觉自己写不出来, 我是来看答案的
回复 使用道具 举报
冯景超 来自手机 中级黑马 2015-11-22 22:51:51
8#
for嵌套循环
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马