输出肯定使用for循环输出,自己在网上看一个看的有点糊涂,然后想了半天,写了一个自己的
没有什么技术含量而且条件判定还很麻烦
但好歹是自己想的,发出来供大家一乐
public static boolean lingxing(int x){
if(x%2==0)
return false;//菱形肯定是奇数行
else {
String[] a = new String[x];
for (int i = 0; i < x; i++) {
a[i] = "*";
}
for (int j=0;j<x;j++)
{
if(j<(x+1)/2){
for(int k=0;k<x;k++)
{
if(k<(x-1)/2-j||k>(x-1)/2+j){//这个判定条件是列数、行数、输出位数的关系,我找到的关系式是这个,大可以看一下网上其他比较好一点的思路
System.out.print("\u0000");
}
else
System.out.print(a[k]);
}
}
else{
for(int k=0;k<x;k++){
if(k<(x-1)/2-(x-1-j)||k>(x-1)/2+(x-1-j))
{
a[k]="\0";
System.out.print(a[k]);
}
else
System.out.print(a[k]);
}
}
System.out.println();
}
return true;
}
}
}
//讲真的,这个题目不算难,我竟然还写了这么长
emmmmm,感觉就是输出位数和行列数的关系要想下怎么找