`
hb0308513
  • 浏览: 6491 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类

java 打印半金字塔,金字塔,空心金字塔,空心菱形

阅读更多

java 打印半金字塔,金字塔,空心金字塔,空心菱形

 

/**
*作者:huangbao
*日期:2010-06-21
*功能:打印半金字塔,金字塔,空心金字塔,空心菱形
*描述:半金字塔,金字塔,空心金字塔,空心菱形
*其它:Pyramid,Layer
*/
import java.io.*;
public class Pyramid
{
	public static void main(String[] args)
	{

		//这是javaeye上的一个例子
		//菱形
		 for(int i=0;i<9;i++)   
            {   
              if(i<5){   
               for(int j=0;j<5-i;j++)   
               {   
                   System.out.print(" ");   
               }   
               for(int j=0;j<=i;j++)   
               {   
                System.out.print("★");   
                }   
               System.out.println();   
            }   
            else{   
               for(int j=0;j<=i-4;j++)   
               {   
                System.out.print(" ");   
                }   
               for(int j=0;j<9-i;j++)   
               {   
                     System.out.print("★");   
               }   
               System.out.println();   
                }   
        }   

	 //以下是我参考javaeye的例子所写

	      //半金字塔
/*
*
**
***
****
*/
			int layer=4;
			for(int i=1;i<=layer;i++){
				for(int j=1;j<=i;j++){
					System.out.print("*");
				}
				 System.out.println();
			}


			//金字塔
			System.out.println("金字塔");
			fullPyramid();
/*
   *
  ***
 *****
*******
   */
			
			

			
			//空心金字塔
			System.out.println("空心金字塔");
			 hollowPyramid();
/*
   *
  * *
 *   *
*******
   */
  


   
		  //菱形
		  System.out.println("菱形");
		  fullDiamond();
/*
   *
  ***
 *****
*******
 *****
  ***
   *
   */
   
   
		//空心菱形
		System.out.println("空心菱形");
		 hollowDiamond();
/*
   *
  * *
 *   *
*     *
 *   *
  * *
   *
   */
  
	}

	//金字塔
	//Full pyramid
	public static void fullPyramid(){
		int layer=4;
		for(int i=1;i<=layer;i++){
			//空格规律
			//1->3,2->2,3->1,4->0
			for(int k=1;k<=layer-i;k++){
				System.out.print(" ");
			}
			//打印*规律
			//1->1,2->3,3->5,4->7
			for(int j=1;j<=(i-1)*2+1;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}

	//空心金字塔
	//Hollow pyramid
	public static void hollowPyramid(){
		int x=7;
		int y=2;
		System.out.println("x/y:"+(x/y));
		int layer=4;
		for(int i=1;i<=layer;i++){
			for(int k=1;k<=layer-i;k++){
				System.out.print(" ");
			}
			for(int j=1;j<=(i-1)*2+1;j++){
				if(i==1 || i==layer ){
				System.out.print("*");
				}else{
					if(j==1 || j==(i-1)*2+1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}

				}
			}
			System.out.println();
		}
	}
	
	//菱形
	//full diamond
	public static void fullDiamond(){
		int layer=7;
		for(int i=0;i<layer;i++){
			if(i<layer/2+1){
				//空格规律
				//1->3,2->2,3->1,4->0
				for(int k=0;k<layer/2+1-i;k++){
					System.out.print(" ");
				}
				//打印*规律
				//1->1,2->3,3->5,4->7
				for(int j=0;j<(i+1)*2-1;j++){
					
					System.out.print("*");
					
				}
				
				System.out.println();
			}else{
				//4,5,6-3->1,2,3
				for(int k=0;k<=i-(layer-(layer/2+1));k++){
					System.out.print(" ");
				}
				//7-4,5,6,7->3,2,1,0-1->2,1,0,-1
				//7-4,5,6,7->3,2,1,0+1->4,3,2,1*2->8,6,4,2-1->7,5,3,1
				//6-4,5,6->2,1,0+1->3,2,1*2->6,4,2-1->5,3,1
				//7-4,5,6->3,2,1*2->6,4,2-1->5,3,1
				for(int j=1;j<=(layer-i)*2-1;j++){
					System.out.print("*");
					
				}
				
				System.out.println();
			}
		}
	}

	//空心菱形
	//Hollow diamond
	public static void hollowDiamond(){
		try{
		BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
		System.out.println("请输入菱形的层数(>=3的整数):");
		String hd=buf.readLine();
		int layer=Integer.parseInt(hd);
		//int layer=21;
		if(layer%2==0)
		{
			layer=layer-1;
		}
		for(int i=0;i<layer;i++){
			if(i<layer/2+1){
				//空格规律
				//1->3,2->2,3->1,4->0
				for(int k=0;k<layer/2+1-i;k++){
					System.out.print(" ");
				}
				//打印*规律
				//1->1,2->3,3->5,4->7
				for(int j=1;j<=(i+1)*2-1;j++){
					if(i==0){
					System.out.print("*");
					}else{
						//0,1,2,3+1->1,2,3,4*2->2,4,6,8-1->1,3,5,7
						if(j==1 || j==(i+1)*2-1){
							System.out.print("*");
						}else{
							System.out.print(" ");
						}
					}
				}
				
				System.out.println();
			}else{
				//4,5,6-3->1,2,3
				for(int k=0;k<=i-(layer-(layer/2+1));k++){
					System.out.print(" ");
				}
				//7-4,5,6,7->3,2,1,0-1->2,1,0,-1
				//7-4,5,6,7->3,2,1,0+1->4,3,2,1*2->8,6,4,2-1->7,5,3,1
				//6-4,5,6->2,1,0+1->3,2,1*2->6,4,2-1->5,3,1
				//7-4,5,6->3,2,1*2->6,4,2-1->5,3,1
				for(int j=1;j<=(layer-i)*2-1;j++){
					if(i==layer-1){
					 System.out.print("*");
					}else{
						if(j==1 || j==(layer-i)*2-1){
							System.out.print("*");
						}else{
							System.out.print(" ");
						}
					}
				}
				
				System.out.println();
			}
		}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

 

分享到:
评论
2 楼 jifeng520qq 2011-10-16  
经典 
1 楼 javaAlpha 2010-11-03  
  这个例子很经典。

相关推荐

Global site tag (gtag.js) - Google Analytics