所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner scan=new Scanner(System.in);
int x=scan.nextInt();
String s=scan.next();
char c=s.charAt(0);//输入要测试的字符数量x和字符c
int sum=0,n=0,i=1;
while(sum*2-1<=x)
{
sum=sum+i;
i=i+2;
n++;
};
i=i-4;//最后一项的值
n=n-1;//项数的值
sum=n+n*(n-1)*2/2;//前n项和
sum=sum*2-1;//沙漏要用*的个数
int j,m,w,k=0;
for(j=0;j<n-1;j++)
{
for(m=0;m<k;m++)
{
System.out.print(" ");
}//打印下三角中的空格
k++;
for(w=0;w<i;w++)
{
System.out.print(c);
}//打印下三角中的*
i=i-2;
System.out.print("\n");
}//打印下三角,除了最下面的一个*
for(j=0;j<n;j++)
{
for(m=0;m<k;m++)
{
System.out.print(" ");
}//打印上三角中的空格
k--;
for(w=0;w<i;w++)
{
System.out.print(c);
}//打印上三角中的*
i=i+2;
System.out.print("\n");
}//打印上三角
int z;
z=x-sum;
System.out.println(z);
}
}