Java金字塔及变形

Java金字塔

package com.tfj.test;
public class JinZiTa {
public static void main(String[] args){
	int num=4;
	for(int i=0;i<num;i++){
//	  找出空格规律
		for(int j=1;j<num-i;j++)
	System.out.print(" ");
//        找出*规律
      for(int k=0;k<2*i+1;k++){
    System.out.print("*");
      }
    System.out.println();
	}
}
}
运行结果如图:
<img src="http://img.blog.csdn.net/20150708235559757?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />


<strong><span style="font-size:18px;"></span></strong><pre name="code" class="java"><span style="font-size: 18px;">Java金字塔变形1:</span>

<pre name="code" class="java">package com.tfj.test;
public class JinZiTa2 {
public static void main(String[] args){
	int num=4;
	for(int i=0;i<num;i++){
	 for(int j=1;j<num-i;j++)
	 System.out.print(" ");
//  方法1:特殊处理金字塔里面空心的
//	      for(int k=0;k<2*i+1;k++){
//       if(i>0&&i<num-1&&k>0&&k<2*i){
//    	   System.out.print(" ");
//       }
//       else{
//     System.out.print("*");
//      }
//     }
//	 方法2:先处理第一层和最后一层,然后处理中间的num-2层
	 for(int k=0;k<2*i+1;k++){
		 if(i==0||i==num-1){
			 System.out.print("*");
		 }else{
			 if(k==0||k==2*i){
				 System.out.print("*");
			 }else{
				 System.out.print(" ");
			 }
		 }
	 }
     System.out.println();
	}
}
}

运行结果如图:


<img src="http://img.blog.csdn.net/20150708235659318?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />


<strong><span style="font-size:18px;">Java金字塔变形2:</span></strong>
<pre name="code" class="java">package com.tfj.test;
public class JinZiTa3 {
public static void main(String[] args){
	int num=4;
	for(int i=0;i<num;i++){
	 for(int j=1;j<num-i;j++)
	 System.out.print(" ");
	      for(int k=0;k<2*i+1;k++){
       if(i>0&&i<num&&k>0&&k<2*i){
    	   System.out.print(" ");
       }
       else{
     System.out.print("*");
      }
     }
     System.out.println();
	}
//	将上面的进行倒置,然后稍加处理
	for(int i=num-1;i>0;i--){
		 for(int j=num-i;j>0;j--)
		 System.out.print(" ");
		      for(int k=2*i-1;k>0;k--){
	       if(i>0&&i<num&&k>1&&k<2*i-1){
	    	   System.out.print(" ");
	       }
	       else{
	     System.out.print("*");
	      }
	     }
	     System.out.println();
		}
}
}
运行结果如图:
<img src="http://img.blog.csdn.net/20150708235731121?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

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

时间: 2024-10-20 01:32:37

Java金字塔及变形的相关文章

java 工厂模式变形的多种应用

工厂模式在项目开发中是使用效率非常高的,意思就是说定义一个用于创建对象的接口,让子类去决定实例化哪一个类.这就是一个工厂类的示意图 接着来一个简单的例子: 如上图所示,我们首先定义我们的产品抽象类接口,也可以是抽象类: package factory; public abstract class PlatForm { public void search(){ System.out.println("你搜索的结果是......"); } public abstract void mus

八大排序算法JAVA实现(时间复杂度O(n*logn)篇)

本文讲述时间复杂度为n*logn的排序算法:归并排序.快速排序.堆排序以及希尔排序的原理.Java实现以及变形应用. 一.归并排序 原理:把两个有序数列合并为一个有序数列.需递归实现. Java实现: 1 public int[] mergeSort(int[] a, int n) 2 { 3 return doMergeSort(a, n, 0, n - 1); 4 } 5 public int[] doMergeSort(int[] a, int n, int start, int end)

java简单打印金字塔(案例)

学习编程语言,打印简单的金字塔是基础的案例,在这里就简单的写了个案例,希望能帮助到各位 代码 效果 class  kinTa{    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        for(int i = 1; i < 8; i++){   //控制行数            for(int j = 0; j < 8-i;j++){   //每行要打印的

Java输出正反金字塔循环

1,问题分析 我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间.这实际是因为星号之前有很多空格.当我们使用问号来表示空格,实际的输出效果应该是图1.2的形式. 1.1     1.2 从图中分析,我们可以看到本次打印出的金字塔有5行,每一行都会打印出几个空格,然后再打印出几个★号,这样我们就知道该如何确认程序的框架了. public static void Triangle(){ for(int i = 1;i <= 5;i++){ //循环5次,打印5行 //打印空格数

java打印正金字塔,倒金字塔和“水影”金字塔

java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思的图形,心血来潮自己就写了这么一个打印金字塔的demo,自己回顾一下当初的感受,同时也 分享给初学java的同道中人,一起来培养编程的兴趣<(^-^)>. 金字塔图案 1,问题分析 我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间.这实际是因为星号之前有很多空格.当我们使用问号

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: 1 class Star8 2 { 3 public static void main(String[] args) 4 { 5 /* 空格 6 * 1 2*i-1 3 4-1 4-i 7 *** 3 2 4-2 8 ***** 5 1 4-3 9 ******* 7 0 4-4 10 */ 11 //第一层循环控制的是行数 12 for(int i = 1;i<=

ForDemo.java【打印一个金字塔】

/* 打印出下方的金字塔图案,要求:获取终端输入需要打印的金字塔层数,然后依次打印出图案. * * * * * ******* ***** *** * 最外层的循环控制换行,内循环有两个,一个控制打印空格,一个循环控制打印* //课堂习题1:打印出九九乘法表 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 …… //课堂习题2:请将以下代码使用while循环实现. */ import java.util.Scanner; public class ForDemo{ pub

Java打印5行金字塔型‘*’

正金字塔: public class th { public static void main(String[] args){ int i,j; for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++) { System.out.print(" "); } for(j=1;j<=2*i-1;j++) { System.out.print("*"); } System.out.println( ); } } } 图形: 倒金

用java编写小程序打印“金字塔”

package demo1; public class Demo { public static void main(String[] args) { int a=4; for(int i=1;i<=a;i++) { for(int k=1;k<=a-i;k++) { System.out.print(" "); } for(int j=1;j<=(i-1)*2+1;j++) { System.out.print("*"); } System.ou