`
hb0308513
  • 浏览: 6534 次
  • 性别: 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  
  这个例子很经典。

相关推荐

    java打印镂空金字塔

    根据给定的文件信息,我们可以总结出以下关于“Java打印镂空金字塔”的相关知识点: ### 一、基础知识 #### 1.1 Java编程语言简介 Java是一种广泛使用的面向对象的编程语言,它由Sun Microsystems公司于1995年发布...

    經典案例打印空心金字塔.go

    經典案例打印空心金字塔.go

    java_金字塔

    根据给定文件的信息,我们可以...这些示例涵盖了从简单的实心金字塔到更复杂的空心金字塔以及倒金字塔的不同场景。通过对这些示例的学习,可以加深对Java中循环、条件语句等基础知识的理解,并提高解决实际问题的能力。

    用php来打印不同的形状

    本示例探讨了如何使用PHP中的for循环来打印几种基本的图形,包括半个金字塔、整个金字塔以及空心金字塔。 1. **打印半个金字塔** 半个金字塔的打印主要是通过两层嵌套的for循环来实现。外层循环控制打印的层数,...

    C语言图案金字塔,用C实现的字母金字塔

    b--)`)用于打印每行的后半部分字符,即从最大字符递减回 `'A'`。 ##### 用户输入处理 **获取用户输入** - 用户被提示输入一个字符,该字符决定了金字塔的高度。 - 使用 `scanf` 函数读取用户的输入,并存储到...

    空心的数字金字塔的C语言代码.pdf

    在C语言中,创建空心数字金字塔是一种常见的编程练习,它可以帮助初学者更好地理解循环、条件判断以及控制流。在给定的代码中,我们看到一个C语言程序,用于生成用户指定行数的空心数字金字塔。以下是这个程序的关键...

    c#用*编译金字塔代码

    例如,空心金字塔会在星号的内部打印空格,形成一个中空的形状。这样的练习可以帮助开发者提升逻辑思维和编程技巧。 总结起来,C#实现金字塔代码主要涉及以下几个知识点: 1. 使用`for`循环进行迭代。 2. 控制台...

    空心的数字金字塔c.md

    空心的数字金字塔c

    c 语言 空心的数字金字塔 逐行解释

    空心的数字金字塔c

    C++空心的数字金字塔.zip

    数字金字塔

    测验2 6-1 空心金字塔.cpp

    测验2 6-1 空心金字塔.cpp

    C语言输出数字金字塔.c

    用vc++,C语言输出数字以金字塔排列

    PHP中使用循环实现的金字塔图形

    在上述内容中,提到了两种方法来打印空心金字塔。第一种方法使用了switch语句来决定每一行打印多少个星号和空格,这种方法可能在读起来的时候不是很直观,因为需要根据行号来判断打印内容。 第二种方法将打印工作...

    PHP程序设计-3期(KC016) 2.6.8循环控制6双重循环课后习题.doc

    除了基本的金字塔,还可以扩展到其他形式,如倒置金字塔、空心金字塔等。优化代码可以通过使用函数封装金字塔的绘制,或者使用数组存储金字塔的每一行,进一步提高代码的可读性和复用性。 通过这样的习题,你可以...

    蓝桥杯-C语言图形输出

    本资源摘要信息涵盖了 C 语言图形输出的多方面知识点,包括矩形、平行四边形、等腰三角形、等腰梯形、空心梯形、空心正六边形、sin(x) 函数图形、cos(x) 函数图形、螺旋方阵、数字金字塔、回型方阵、乘法九九表等...

    Python利用for循环打印星号三角形的案例

    在给定的文件中,我们看到几个使用for循环来打印不同形状的案例,包括星号三角形、实心三角形、实心正方形、空心正方形以及金字塔。这些案例都是对for循环基础知识的实际应用。 1. 星号三角形: ```python for i ...

    陕西省渭南市临渭区尚德中学2020届高三地理上学期第三次月考试题含解析

    【知识点一:人口金字塔及其应用】 人口金字塔是反映一个国家或地区年龄结构和性别结构的重要图表,通过其形状可以分析出人口的年龄结构是否均衡,预测未来人口发展趋势。在题目中,A国的人口金字塔呈现出底部宽大...

    C++程序源码

    6. **套含空心金字塔源码.txt**:这个程序可能用于打印出特定形状的空心金字塔,需要用到嵌套循环和条件判断。这是一类典型的控制流问题,可以锻炼程序员对循环结构的运用。 7. **斐波纳契数列源码.txt**:斐波纳契...

Global site tag (gtag.js) - Google Analytics