注释:关键是要找出星星与空格和行数之间的关系,这里就不多说了,纯属数学问题啦,直接上代码。
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
分享到:
相关推荐
用java代码编写程序输出金字塔/镂空金字塔
java perl 编程初步 从最简单的金字塔打印开始 祝你好运
如何输出金字塔和镂空的金字塔,分别用了java 和oracle两种方法。
在JAVA中如何输出金字塔的形状,其实就是一定的算法加输出格式的控制。
学习资源,java入门小程序,面向对象的编程,共同学习
打印金字塔数字模式的 Java 程序
在屏幕上打印出n行的金字塔图案,似: * *** ***** *******
自己写得几个 金字塔 例子,很简单,可以很清楚得读懂,希望对某些朋友有帮助。
打印金字塔星形图案的Java程序
用java做的一个3d金字塔
输出×组建成金字塔。pubic class Pyramid
打印金字塔,初级代码c++已运行
打印倒金字塔的案例,
初级java学习打印金字塔,利用for循环的嵌套,来实现在在第一行输出一个“*”,第二行输出两个“*”,依次类推
多种金字塔的编写,简单、明了,希望对你有所帮助
c语言作业,用户输入金字塔层数,代码输出打印金字塔,代码为c格式,可直接下载运行。附送输出乘法表的代码,本着交流为本的意愿,本不愿意有积分限制,系统有限制最低积分为一分!
打印倒金字塔星形图案的Java程序
java输出星号金字塔源码 本文介绍了一些在 Java 编程中打印金字塔图案的星星 (*) 的程序。以下是本文中涉及的程序列表: 星星的金字塔图案 完整或完整的星星金字塔图案
Java3D语言编制的金字塔程序,可以用于测试Java3D的安装是否成功,也可用于交流学习。
Java基础关于for-for的小例子 结果如下: * * * * * * * * * * * * * * *