首先确定你输入的数字n可以打出几行 " * ",(n+1)/2是你打印上半部分需要的个数(上边的倒三角)然后写出一个循环判断上边倒三角有几行,每行有(1,3,5,7......)然后通过循环打印
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = input.nextInt();//符号个数
char c = input.next().charAt(0);
int i, j, n, m, s = 0, k = 0;
int b = (a + 1) / 2;
for (i = 1, j = 1; ; i = i + 2, j++) {
s += i;
if (s > b) {
n = j - 1;//倒三角的行数
s=s-i;
break;
}
}
for (i = 2 * n - 1; i > 0; i = i - 2, k++) {
for (m = 0; m < k; m++) {
System.out.print(" ");
}
for (j = 2 * i - 1; j > 0; j = j - 2) {
System.out.print(c);
}
System.out.println();
}
for(i=1;i<n;i++,k--){
for(m=0;m<k-2;m++)
System.out.print(" ");
for(j=0;j<i*2+1;j=j+1)
{
System.out.print(c);
}
System.out.println();
}
System.out.println(a-2*s+1);
}
}