学习日常----Java实现打印动态菱形
题目要求:给定一个奇数n,输出一个n行的菱形
输出样例:
5 * *** ***** *** *
解题思路:
将菱形矩阵分为上下两部分输出,中间行随上半部分一起输出
上半部分矩阵:
将菱形矩阵分为上下两部分输出,中间行随上半部分一起输出
上半部分矩阵:
//菱形阵上半部分(包括中间行) for(int i = 1;i <=(l+1)/2; i ++) { for(int j = (l+1)/2; j > i; j--) { System.out.print(" "); } for(int k = 1;k <=i*2-1; k++) { System.out.print("*"); } System.out.println(); }
下半部分矩阵:
//菱形阵下半部分 for(int i = 1; i <=(l-1)/2; i++) { for(int j = 1;j <= i; j++) { System.out.print(" "); } for(int k = 1; k <=l-i*2 ; k++) { System.out.print("*"); } System.out.println(); }
完整源代码:
import java.util.Scanner; public class lingxing { public static void main(String[] args) { Scanner scan= new Scanner(System.in); int l= scan.nextInt(); //菱形阵上半部分(包括中间行) for(int i = 1;i <=(l+1)/2; i ++) { for(int j = (l+1)/2; j > i; j--) { System.out.print(" "); } for(int k = 1;k <=i*2-1; k++) { System.out.print("*"); } System.out.println(); } //菱形阵下半部分 for(int i = 1; i <=(l-1)/2; i++) { for(int j = 1;j <= i; j++) { System.out.print(" "); } for(int k = 1; k <=l-i*2 ; k++) { System.out.print("*"); } System.out.println(); } } }