输出空心的菱形,在面试或者考试中也会出现,百度上的都没有详解,下面附上代码详解
public class Diamond { public static void main(String[] args) { printHollowRhombus(10);//调用下面的函数,输入参数 } public static void printHollowRhombus(int size){ if(size%2==0){ size++;//菱形不能为奇数.+1为偶数 } for (int i=0;i<size/2+1;i++){//循环的行数为6 for(int j=size/2+1;j>i+1;j--){//当i=0时循环第一行,j初始值为6递减 // *号位置依次为654321,即i=0时,j循环到5结束 System.out.print("1");//将空格换成1 } for (int j=0;j<2*i+1;j++){//当第一个for循环完时输出一个*,即j=0时,第一行第6位为* if (j==0||j==2*i){ System.out.print("*");//后面每一行的*号位置为54321,当i每增加1,,每行的数量加1 }else{ System.out.print("1");//j从0开始递增,每当j为i的2倍时,为当前行数的最后一位 } } System.out.println("");//即输出最后一位*,换行 } //菱形下部分 for (int i=size/2+1;i<size;i++){ for (int j=0;j<i-size/2;j++){ System.out.print("1"); } for (int j=0;j<2*size-1-2*i;j++){ if (j==0||j==2*(size-i-1)){ System.out.print("*"); }else { System.out.print("1"); } } System.out.println(""); } } }
输出结果为
将1换成空格