黑马程序员技术交流社区

标题: 如何在控制台输入一个菱形 [打印本页]

作者: Toxicant    时间: 2016-9-11 22:58
标题: 如何在控制台输入一个菱形
      如何在控制台输入一个高为9,宽为5的菱形

作者: a1029612664    时间: 2016-9-12 10:47
高为9宽为五这个不知道怎么画的,俺这个是高为9宽为9的菱形
public class LingXing {
       
        public static void main(String[] args) {
                int size=5;
               
                for(int i=1; i<=size; i++){
                        for(int j=i;j<size;j++){
                                System.out.print(" ");
                        }
                        for(int k=1;k<=i*2-1;k++){
                                System.out.print("*");
                        }
                        System.out.println();
                }
               
                for(int i=size-1;i>=1;i--){
                        for(int j=1;j<=size-i;j++){
                                System.out.print(" ");
                        }
                        for(int k=i*2-1;k>=1;k--){
                                System.out.print("*");
                        }
                        System.out.println();
                }
        }

}


结果是这样的:
    *
   ***
  *****
*******
*********
*******
  *****
   ***
    *
作者: 9527个人    时间: 2016-9-12 14:06
可以先画出来,再观察每行的*和空格的数量,你会发现其规律的
作者: Toxicant    时间: 2016-9-12 22:24
输入菱形的上半部分
                for (int i = 5; i >0; i--) {
//                        先打印空格,依次减少空格的打印
                        for (int j = 5-i; j < 5; j++) {
                                System.out.print(" ");
                        }
//                        在空格的后面打印左半部分"*",依次增加"*"的打印
                        for (int k = 0; k < 5 - i+1; k++) {       
                                System.out.print("*");
                        }
//                        打印右半部分的"*",依次增加"*"的打印
                        for (int j = 0; j < 5-i; j++) {
                                System.out.print("*");
                        }
//                        每次循环打印后都要换行
                        System.out.println();
                }
//                输入菱形的下半部分
                for (int i = 0; i < 5; i++) {
//                        打印空格从零个空格打印依次增加
                        for (int j = i+2; j>0; j--) {
                                System.out.print(" ");
                        }
//                        打印左半部分的"*",依次减少"*"的打印
                        for (int j = 0; j <4-i; j++) {
                                System.out.print("*");
                        }
//                        打印右半部分的"*",依次减少"*"的打印
                        for (int j = 0; j <3-i; j++) {
                                System.out.print("*");
                        }
                        System.out.println();
                }
自己的思路做的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2