java 순환 인쇄 피라미드

1615 단어
질문:
다음 성탑을 프로그램으로 출력해 주세요.
  *
 ***
*****
 ***
  *
main 함수의 입력 매개 변수에 5를 설정하고 5층 성탑을 출력해야 합니다.7 을 입력하면 7 층 성탑이다.만약 입력 매개 변수가 모두 홀수이고 모두 5보다 크며 11보다 작다고 가정한다.
코드:
 public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("     :");
        int in=sc.nextInt();
        if(in%2==0||in<5||in>11)
            return;
        int i1;
        for(int i=1;i<=in;i++){
            //  :2i-1    in-2i+1
            if(in/2+1>=i) {
                i1=i;
                for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
                    System.out.print(" ");
                }
                for (int j = 1; j <= 2 * i1 - 1; j++) {
                    System.out.print("*");
                }
//                for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
//                    System.out.print(" ");
//                }
                System.out.println();
            }
            else {
                i1=in-i+1;

                    for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
                        System.out.print(" ");
                    }
                    for (int j = 1; j <= 2 * i1 - 1; j++) {
                        System.out.print("*");
                    }
//                    for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
//                        System.out.print(" ");
//                    }
                    System.out.println();
            }
        }
    }

좋은 웹페이지 즐겨찾기