欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Java打印數(shù)字組成的魔方陣及字符組成的鉆石圖形

 更新時間:2016年03月17日 08:53:36   作者:Radic_Feng  
這篇文章主要介紹了使用Java打印數(shù)字組成的魔方陣及字符組成的鉆石圖形,可作為一些CLI程序界面的基礎(chǔ)部分,需要的朋友可以參考下

打印魔方陣

輸入一個自然數(shù)N(2≤N≤9),要求輸出如下的魔方陣,即邊長為N*N,元素取值為1至N*N,1在左上角,呈順時針方向依次放置各元素。  N=3時:

   1  2  3  
   8  9  4  
   7  6  5 

【輸入形式】 從標(biāo)準(zhǔn)輸入讀取一個整數(shù)N。 
【輸出形式】 向標(biāo)準(zhǔn)輸出打印結(jié)果。輸出符合要求的方陣,每個數(shù)字占5個字符寬度,向右對齊,在每一行末均輸出一個回車符。
【輸入樣例】  4
【輸出樣例】     

  1  2  3  4 
  12  13  14  5 
  11  16  15  6  
  10  9  8  7

實現(xiàn):

package cn.dfeng; 
import java.util.Arrays; 
import java.util.Scanner; 
public class Maze { 
  enum Direction{ 
    UP, DOWN, RIGHT, LEFT; 
  } 
  public int[][] buidMaze( int n ){ 
    int[][] maze = new int[n][n]; 
    for( int[] a : maze ){ 
      Arrays.fill(a, 0); 
    } 
     
    int col = 0; 
    int row = 0; 
    int counter = 1; 
    Direction d = Direction.RIGHT; 
     
    while( true ){ 
      if( maze[row][col] == 0 ){ 
        maze[row][col] = counter++; 
         
        switch (d) { 
          case RIGHT:  
            if( col + 1< n && maze[row][col + 1] == 0){ 
              col ++; 
            }else{ 
              d = Direction.DOWN; 
              row ++; 
            } 
            break; 
          case DOWN: 
            if( row + 1 < n && maze[row + 1][col] == 0){ 
              row ++; 
            }else{ 
              d = Direction.LEFT; 
              col --; 
            } 
            break; 
          case LEFT: 
            if( col - 1 >= 0 && maze[row][col-1] == 0){ 
              col --; 
            }else{ 
              d = Direction.UP; 
              row --; 
            } 
            break; 
          default: 
            if( row - 1 >= 0 && maze[row - 1][col] == 0){ 
              row --; 
            }else{ 
              d = Direction.RIGHT; 
              col ++; 
            } 
            break; 
        } 
         
      }else{ 
        break; 
      } 
    } 
    return maze; 
  } 
   
  public void printMaze( int[][] maze ){ 
     
    for( int[] row : maze ){ 
      for( int i : row ){ 
        System.out.printf("%3d", i); 
      } 
      System.out.println(); 
    } 
     
  } 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Please input the size of the maze:"); 
    int size = sc.nextInt(); 
    Maze maze = new Maze(); 
    int[][] m = maze.buidMaze( size ); 
    maze.printMaze( m ); 
  } 
} 

打印鉆石圖形

鉆石圖的效果大概就是這樣的:

201631784713111.png (171×170)

下面我們來看代碼

package cn.dfeng; 
/** 
 * 該類能夠用*打印大小的鉆石圖形 
 * @author dfeng 
 * 
 */ 
public class Drawer { 
   
  /** 
   * 打印鉆石圖形 
   * @param n 鉆石大小 
   */ 
  public void printDiamond( int n ){ 
    System.out.println(); 
    int i = 0; 
    boolean flag = true; 
    while( i >= 0 ){ 
      if (i < n) { 
        for (int j = 0; j < n - i; j++) { 
          System.out.print(" "); 
        } 
        for (int j = n - i; j <= n + i; j += 2) { 
          System.out.print("* "); 
        } 
        System.out.println(); 
      } 
      if (i == n) { 
        flag = false; 
        i--; 
      } 
      if (flag) { 
        i++; 
      } else { 
        i--; 
      } 
    } 
     
  } 
} 

相關(guān)文章

  • java實現(xiàn)ArrayList根據(jù)存儲對象排序功能示例

    java實現(xiàn)ArrayList根據(jù)存儲對象排序功能示例

    這篇文章主要介紹了java實現(xiàn)ArrayList根據(jù)存儲對象排序功能,結(jié)合實例形式分析了java針對ArrayList的相關(guān)運算、排序操作技巧,需要的朋友可以參考下
    2018-01-01
  • 淺談Java中static關(guān)鍵字的作用

    淺談Java中static關(guān)鍵字的作用

    這篇文章主要介紹了Java中static關(guān)鍵字的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java畢業(yè)設(shè)計實戰(zhàn)之養(yǎng)老院管理系統(tǒng)的實現(xiàn)

    Java畢業(yè)設(shè)計實戰(zhàn)之養(yǎng)老院管理系統(tǒng)的實現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+JSP+Easyui+maven+mysql實現(xiàn)一個養(yǎng)老院管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2022-03-03
  • 淺談Java中各種修飾符與訪問修飾符的說明

    淺談Java中各種修飾符與訪問修飾符的說明

    下面小編就為大家?guī)硪黄獪\談Java中各種修飾符與訪問修飾符的說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot的@EnableAsync和@Async注解分析

    SpringBoot的@EnableAsync和@Async注解分析

    這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個快速開發(fā)框架,可以幫助開發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • 如何利用postman完成JSON串的發(fā)送功能(springboot)

    如何利用postman完成JSON串的發(fā)送功能(springboot)

    這篇文章主要介紹了如何利用postman完成JSON串的發(fā)送功能(springboot),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java設(shè)計模式之原型模式詳細(xì)解讀

    Java設(shè)計模式之原型模式詳細(xì)解讀

    這篇文章主要介紹了Java設(shè)計模式之原型模式詳細(xì)解讀,原型模式屬于創(chuàng)建型設(shè)計模式,用于創(chuàng)建重復(fù)的對象,且同時又保證了性能,該設(shè)計模式的好處是將對象的創(chuàng)建與調(diào)用方分離,需要的朋友可以參考下
    2023-12-12
  • Java控制語句之if、switch語句

    Java控制語句之if、switch語句

    這篇文章主要介紹了Java控制語句之if、switch語句的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java設(shè)計模式常用原則解析

    Java設(shè)計模式常用原則解析

    這篇文章主要介紹了Java設(shè)計模式常用原則解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • HttpClient 在Java項目中的使用詳解

    HttpClient 在Java項目中的使用詳解

    HttpClient作為訪問Http服務(wù)的客戶端訪問程序已經(jīng)被廣泛使用,提高了開發(fā)效率,也提高了代碼的健壯性。因此熟練掌握HttpClient是必需的,關(guān)于httpclient感興趣的朋友可以參考本篇文章
    2015-10-10

最新評論