java用for循环打印菱形

publicclassTest05{publicstaticvoidmain(String[]args){print(9);//输出7行的菱形}publicstaticv... public class Test05 {
public static void main(String[] args) {
print(9); // 输出7行的菱形
}

public static void print(int size) {
if (size % 2 == 0) {
size++; // 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" "); // 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("*"); // 输出菱形上半部边缘
}
System.out.println(); // 换行
}

for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" "); // 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {

System.out.print("*"); // 输出菱形下半部边缘

}
System.out.println(); // 换行
}
}

}

求指教 输出下半部分*时候 判断的条件 j<2*size-1-2*i 如何得出?? 求大神
展开
 我来答
傲寒轩辕
2018-04-17
知道答主
回答量:26
采纳率:83%
帮助的人:6.8万
展开全部
你可以换个来看,每少一行需要少输出两个*,所以这部分的量就是(size-i)*2,而最少需要输出的是1个*,刚好size那边是奇数并且满足size-i大于0的,所以需要再-1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式