本人小白,代码写的不够精简,见谅。
运用StringBuffer,期间0,3格式错误,是因为*后面不能是空格,所以在减少*的时候不能使用StringBuffer的setCharAt替换成空字符,用deletCharAt删除末尾字符
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String emo = sc.next();
char c = emo.charAt(0);
int low =(int) Math.sqrt((n+1)/2);
int sum = 0;
StringBuffer content = new StringBuffer();
for(int i = 0;i<2*low-1;i++)
{
content.append(emo);
sum++;
}
System.out.println(content);
int sum1 = sum;
for(int i = 0;i<low-1;i++)
{
content.deleteCharAt(content.length()-1);
content.setCharAt(i,' ');
System.out.println(content);
sum+=sum1-(i+1)*2;
}
int num = content.indexOf(emo);
for(int i = 0;i<low-1;i++)
{
content.append(c);
content.setCharAt(num-i-1,c);
System.out.println(content);
sum +=(i+1)*2+1;
}
System.out.println(n-sum);
}
}