用java实现打印菱形,空心菱形

原创 2013年12月04日 09:53:38

自己写的打印菱形,空心菱形的Java代码

    想要写打印菱形的程序代码,但网上的都看着麻烦,不如自己找找规律,自己写一个,而且逻辑上我也能明白。

    说说自己的大体思路:菱形图案实际上是一个n*n的正方形,就是有的打印空格,有的打印*,假设行从0开始到n-1,找找行和所打印的*所在的范围之间的关系,打印条件和行号的关系,对于下半部的图案其实就是上半部的对称,只要将下半部的行号适当修改为与之对应的上半部的行号,打印条件不变就行。不知懂没懂?

 (1)打印出如下图案(菱形)

       *   
      ***  
     *****
    *******
     *****
      ***  
       *

public static void main(String[] args) {

int m =7;
        for (int i = 0; i < m; i++) {
            int t =0; //t是用来存放距离边界需要多少空格
            if (i >= m / 2) {// >是m为奇数的情况下的判断,=是m为偶数的情况下的判断,这里将过半的那些i值转换为与它对称的i值
                t = m - 1 - i;
            }else{
                t = i;
            }
            for (int j = 1; j <= m; j++) {
                if (j >= (m + 1) / 2 - t && j <= (m + 1) / 2 + t) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.print("\n");
        }

}


(2) 打印出如下图案(空心菱形)(2)
       *   
      * *  
     *   *
    *     *
     *   *
      * *  
       *

public static void main(String[] args) {
        int m =7;
        for (int i = 0; i < m; i++) {
            int t =0; //t是用来存放距离边界需要多少空格
            if (i >= m / 2) {// >是m为奇数的情况下的判断,=是m为偶数的情况下的判断,这里将过半的那些i值转换为与它对称的i值
                t = m - 1 - i;
            }else{
                t = i;
            }
            for (int j = 1; j <= m; j++) {
                if (j == (m + 1) / 2 - t || j == (m + 1) / 2 + t) {//空心的话只需将条件改成等于两个边界打印就行,而不是范围了
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.print("\n");
        }
    }

m为奇数偶数都行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java 打印空心菱形

java 打印空心菱形

  • 2011-12-09 19:42
  • 542B
  • 下载

JAVA 打印空心菱形

JAVA 打印空心菱形

JAVA编写打印空心菱形

  • 2009-10-28 14:50
  • 847B
  • 下载

用Java打印空心菱形

刚打完实心菱形,偶尔看到空心菱形,遂自己想写,没想到这个空心菱形想了两个小时才做出来!!! 脑子太笨没办法!!! 效果图: AAAB AABCB ABCCCB BCCCCCB ABCCC...

面试基础题系列(一)java 打印 ,空心菱形

最近要参加面试,比较 之前翻译过一篇文章《通过回顾基础来加强你的编程技能》,自己也要巩固一下基础,也不至于面试这一关而无缘工作机会。 老师说过面试很有可能考打印空心菱形,考验你的逻辑和对for循环的理...

Java小程序:打印空心菱形

金字塔—>空心金字塔—>空心菱形

java 循环问题 大全 求2~100a之内的素数。求水仙花数:(1~1000)。有1、2、3、4四个数字,输出所有能组成的互不相同且无重复的三位数。打印空心菱形

1.求水仙花数:(1~1000) -->三位的水仙花数一共有多少个 4个   水仙花数:一个数各个位上的立方之和,等于本身。   例如: 153 = 1(3) + 5(3)+3(3) = 1+1...

用java实现输出空心菱形的方法

有一部分人在学习java的时候基本都会遇到这个问题,我今天也是被这个问题难倒了,说难也不难,但是for循环一嵌套就蒙了(一部分原因是被书上的代码所迷惑了),一直想不明白,憋的脑袋都要炸了,看啥都不顺眼...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)