import java.util.Scanner; public class TestA { public static void main(String[] args) { // m 是指上半部分倒三角形去掉下顶点后的行数 System.out.print("输入m的值:"); int m = scanner.nextInt(); for (int i = 0; i <= m * 2; i++) {// 打印的总行数 m * 2 // 以if-else来控制什么时候循环哪一部分; if (i < m) { // 此时 i = 0; 上半部分循环次数为 m; 总循环次数为m * 2; // 上半部分将不打印下顶点,其由下半部分打印 // 如果 i < m,则循环上半部分,打印上半部分倒三角形 for (int j = 0; j <= i; j++) {// 将倒三角形左边空白以打印正直角三角形的方式使用空格填充 System.out.print(" "); } // 将倒三角形分成左右两部分,下顶点由下半部分打印 for (int j = m; j > i; j--) {// 倒三角形左半部分,即为打印倒直角三角形,每行比上一行少一 System.out.print("* "); } for (int j = m; j >= i; j--) {// 倒三角形右半部分,同样为打印倒直角三角形,比倒三角形左半部分多一次打印 System.out.print("* "); } System.out.println();// 完成一行打印后换行 } else {// 此时 i = m; 下半部分循环次数为 m + 1; 总循环次数为m * 2; // 如果 i >= m,则循环下半部分,打印下半部分正三角形 // 将i看作0,将 m * 2看作m for (int j = m * 2; j >= i; j--) {// 将三角形左边空白以打印倒直角三角形的方式使用空格填充 System.out.print(" "); } for (int j = m * 2 - i; j <= i; j++) {// 打印正三角形,每行比上一行多二 System.out.print("* "); } System.out.println();// 完成一行打印后换行 } } System.out.println("============================================"); } static Scanner scanner = new Scanner(System.in); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)