public class MatrixPrint { public static void main(String[]args){ MatrixPrint.printIsosceles_triangle(9,2); MatrixPrint.printRhombus(11, 2); } /** * 打印菱形图案,菱形内部以*填充 * * 打印原理: * 将菱形放到一个矩形的平面中,使得菱形的四个顶点位于矩形的边上 * 通过类似于数学中线性优化问题当中找出可行解的原理 * 将可行解用*标定在平面中的位置,可以得到需要的菱形 * @param height * 整个菱形从上顶点到下顶点的高度,这个数是一个奇数 * @param step * 打印菱形从第i行到第i+1行的*符号变化绝对量,必须是一个偶数 */ public static void printRhombus(int height,int step) { if(height%2==0||step%2==1){//参数检查 System.out.println("please reset parameter."); }else{ int halfline=height/2; int halfstep=step/2; for(int i=0;ihalfstep*(halfline+i)))){ //菱形上半部分空格区域 System.out.print(" "); }else if(i>halfline&&(jhalfstep*(halfline*3-i))){ //菱形的下半部分空格区域 System.out.print(" "); }else{ //菱形的*号区域 System.out.print("*"); } } System.out.println();//换行 } } } /** * 打印等腰三角形区域,等腰三角形内部区域以*填充 * * 打印原理: * 将等腰三角形放到一个矩形区域中,使得底边位矩形的底边, * 上顶点在矩形顶边的中点,参照数学中线性规划可行域的解决方法 * 将可行解用*标定出来 * @param height * 等腰三角形的高度,是一个奇数 * @param step * 等腰三角形从第i行到第i+1行的*符号变化绝对量,必须是一个偶数 */ public static void printIsosceles_triangle(int height,int step){ if(height%2==0||step%2==1){ System.out.println("please reset parameter"); }else{ for(int i=0;istep/2*(height+i)){ //空格区域 System.out.printf(" "); }else{ System.out.printf("*"); } } System.out.println();//换行 } } } }
java菱形三角形代码_java 打印三角形,菱形的方法
最新推荐文章于 2022-03-05 09:39:24 发布