`
Brucegaochina
  • 浏览: 39760 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 打印金字塔和菱形

阅读更多
注释:关键是要找出星星与空格和行数之间的关系,这里就不多说了,纯属数学问题啦,直接上代码。

import java.util.Scanner;

public class PrintDiamond {

	/**
	 * @param args
	 * @since 1.0 08/23/11
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int row = 0;

		// to get a odd number
		do {
			System.out
					.println("Enter the oddNumber of half left-alignment diamond(odd number):");
			row = sc.nextInt();
		} while (row % 2 == 0);

		leftDiamond(row);
		System.out.println();
		rightDiamond(row);
		System.out.println();
		topDiamond(row);
		System.out.println();
		bottomDiamond(row);
		System.out.println();
		diamond(row);

	}

	private static void leftDiamond(int oddNumber) {
		for (int i = 1; i <= oddNumber; i++) {
			for (int j = 0; j < oddNumber - Math.abs(oddNumber + 1 - 2 * i); j++)
				System.out.print("*");

			System.out.println();

		}
	}

	private static void rightDiamond(int oddNumber) {
		for (int i = 1; i <= oddNumber; i++) {
			for (int j = 0; j < Math.abs(oddNumber + 1 - 2 * i); j++)
				System.out.print(" ");
			for (int j = 0; j < oddNumber - Math.abs(oddNumber + 1 - 2 * i); j++)
				System.out.print("*");

			System.out.println();

		}
	}

	private static void diamond(int oddNumber) {
		for (int i = 1; i <= oddNumber; i++) {
			for (int j = 0; j < Math.abs((oddNumber + 1) / 2 - i); j++)
				System.out.print(" ");
			for (int k = 0; k < oddNumber - Math.abs(oddNumber + 1 - 2 * i); k++)
				System.out.print("*");

			System.out.println();

		}
	}

	private static void topDiamond(int oddNumber) {
		for (int i = 1; i <= oddNumber; i++) {
			for (int k = 0; k < oddNumber - i; k++)
				System.out.print(" ");
			for (int j = 0; j < 2 * i - 1; j++)
				System.out.print("*");

			System.out.println();
		}
	}

	private static void bottomDiamond(int oddNumber) {
		for (int i = oddNumber; i >= 1; i--) {
			for (int k = 0; k < oddNumber - i; k++)
				System.out.print(" ");
			for (int j = 0; j < 2 * i - 1; j++)
				System.out.print("*");

			System.out.println();
		}
	}
}


结果:
http://screencast.com/t/grtbEDpv
  • 大小: 29.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics