输入一个奇数,如何用java绘制菱形

如图,分别输入5和7时……求大神相助!顺便在跟我说说什么个原理……... 如图,分别输入5和7时……求大神相助!顺便在跟我说说什么个原理…… 展开
 我来答
疯子之二
推荐于2018-04-21 · 超过10用户采纳过TA的回答
知道答主
回答量:16
采纳率:0%
帮助的人:15.6万
展开全部

以下为代码 :

原理都写在注释里了 

ps: 写程序主要是要多独立思考~


public class Test {

   public static void main(String[] args) {
       println(9);
   }

   /**
    * 打印菱形
    *
    * @param length 菱形的边长
    */
   public static void println(int length) {

       //打印菱形
       for (int i = 0; i < length; i++) {
           //我们很容易知道 第一行的和最后一行 实心方块在 中间位置 也就是 length/2  的位置
           // 而往下走 位置向两边扩散一格
           // left 和 right 两个变量表示 在 第i 行时 黑块出现的 两个位置(如果在第一行 和最后一行 left 和 right 是相同的)
           int left = (length / 2 + i);
           int right = (length / 2 - i);

           // 走过中间之后 位置往内聚拢一格
           if (i > length / 2) {
               left = length / 2 + (length - i - 1);
               right = (length / 2 - (length - i - 1));
           }

           for (int j = 0; j < length; j++) {
               //在这里判断 应该打印实心方块还是空心方块
               if (j == left || j == right) {
                   System.out.print("◆");
               } else {
                   System.out.print("□");
               }
           }
           System.out.println();
       }

   }


}
效果图: 9个菱形

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式