java 打印金字塔跟菱形
java 打印金字塔和菱形
注释:关键是要找出星星与空格和行数之间的关系,这里就不多说了,纯属数学问题啦,直接上代码。
结果:
http://screencast.com/t/grtbEDpv
注释:关键是要找出星星与空格和行数之间的关系,这里就不多说了,纯属数学问题啦,直接上代码。
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