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 } }
勿在浮沙筑高台

浙公网安备 33010602011771号