论坛首页 编程语言技术论坛

打印菱形Java实现

浏览 1457 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-08-31  
    
     *    
    * *   
   * * *  
  * * * * 
* * * * *
* * * * * *
* * * * *
  * * * * 
   * * *  
    * *   
     * 
/**
 * Created with IntelliJ IDEA.
 * User: TOSHIBA
 * Date: 12-8-31
 * Time: 下午5:10
 * To change this template use File | Settings | File Templates.
 */
public class ForTest2 {
    public static void  main(String[] args){
        int starNumberPerLine =6;

        int midPx = starNumberPerLine;   //中间数==边*数

//        if(starNumberPerLine%2 != 0) ; //奇数,中间点为*
//        if(starNumberPerLine%2 == 0) ; //偶数,中间点为" "

//        int i = 0;
//
//        int jMin = midPx - (i - 1);    //  上半边, 输出*
//        int jMax = midPx + (i - 1);    //  上半边,  输出*
//
//        int kMin = midPx - (i - 2);    //  下半边, 输出*
//        int kMax = midPx + (i + 2);    //  下半边, 输出*

        for(int i = 1; i <= starNumberPerLine; i++){
            int jMin = midPx - (i - 1);    //  上半边, 输出*
            int jMax = midPx + (i - 1);    //  上半边,  输出*
            for (int j = 1; j <= starNumberPerLine*2-1; j++){
                  if(j>=jMin && j <= jMax)
                  {
                      if(i%2 != 0) {
                        if(Math.abs(midPx - j)%2 == 0)
                         System.out.print("*");
                        else
                         System.out.print(" ");
                      } else {
                          if(Math.abs(midPx -j)%2 == 0)
                              System.out.print(" ");
                          else
                              System.out.print("*");
                       }
                  }
                  else
                      System.out.print(" ");
            }
            System.out.println("");
        }

        for(int m = starNumberPerLine-1; m >= 1; m--){
            int kMin = midPx - (m - 1);    //  下半边, 输出*
            int kMax = midPx + (m - 1);    //  下半边, 输出*
            for (int n = 1; n <= starNumberPerLine*2-1; n++){
                if(n>=kMin && n <= kMax){
                    if(m%2 != 0) {
                        if(Math.abs(midPx - n)%2 == 0)
                            System.out.print("*");
                        else
                            System.out.print(" ");
                    } else {
                        if(Math.abs(midPx - n)%2 == 0)
                            System.out.print(" ");
                        else
                            System.out.print("*");
                    }
                }
                else
                    System.out.print(" ");
            }
            System.out.println("");
        }



    }
}
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics