1027(18)

扣2分,预料之中,边界值不行,比如 1 、7、17都只能取上一个图形

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        String sign=sc.next();
        int sum=0;
        int i,j;
        for (i=0;;i++){
            j=2*i+1;
            sum=sum+2*j;
            if (sum>n){
                break;
            }
        }

        //注意:2i+1即第i行和最后一行数量
        int x1=0;
        for (int k=2*(i-1)+1;k>=1;k=k-2){
            for (int m=0;m<k;m++){
                System.out.print(sign);

            }
            System.out.println();
            if (k>1){

                x1++;
                for (int b=0;b<x1;b++){
                    System.out.print(" ");
                }
            }

        }
        int x2=x1-1;
        for (int k=3;k<2*i+1;k=k+2){
            for (int b=0;b<x2;b++){
                System.out.print(" ");
            }
            x2--;
            for (int m=0;m<k;m++){
                System.out.print(sign);

            }
            System.out.println();
        }
        System.out.println(n-(sum-2*j-1));//获取星星的数量输入19得到17
    }
}

 

posted @ 2018-10-12 16:10  博客园机器人  阅读(193)  评论(0)    收藏  举报