Java菱形
打印实心菱形
思想:把实心菱形看出两部分,一部分是由一个正三角形构成,一部分由一个倒三角构成
法一:
import java.util.Scanner;public class M {public static void drawDiamond(int size) {// *// ***// *****for (int i = 1; i <= size; i++) {for (int j = 1; j <= size - i + 1; j++) {System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {System.out.print("*");}System.out.println();}}// 倒三角public static void drawDiamond1(int size) {// ***// *for (int i = size; i >= 1; i--) {for (int j = size - i; j >= 1; j--) {System.out.print(" ");}for (int j = 2 * i - 1; j >= 1; j--) {System.out.print("*");}System.out.println();}}public static void main(String[] args) {// TODO 自动生成的方法存根// 打印实心Scanner in = new Scanner(System.in);System.out.println("因为菱形的特殊性质,所以请输入奇数:");int size = in.nextInt();// 菱形的高度drawDiamond(size / 2);// System.out.println("---------------------");drawDiamond1(size / 2 + 1);}}
空心菱形
在实心菱形的基础上,把每一行看出两部分,一部分是开始打印*之前的空格,一部分是打印*以及空格
简单一点的:
import java.util.Scanner;public class L {public static void drawDiamond(int size) {// *// * *// *for (int i = 1; i <= size; i++) {for (int j = 1; j <= size - i + 1; j++) {System.out.print(" ");}for (int j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {System.out.print("*");} else {System.out.print(" ");}}System.out.println();}}// 倒三角public static void drawDiamond1(int size) {for (int i = size; i >= 1; i--) {for (int j = size - i; j >= 1; j--) {System.out.print(" ");}for (int j = 2 * i - 1; j >= 1; j--) {if (j == 1 || j == 2 * i - 1) {System.out.print("*");} else {System.out.print(" ");}}System.out.println();}}public static void main(String[] args) {// TODO 自动生成的方法存根// 打印实心Scanner in = new Scanner(System.in);System.out.println("因为菱形的特殊性质,所以请输入奇数:");int size = in.nextInt();// 菱形的高度drawDiamond(size / 2);// System.out.println("---------------------");drawDiamond1(size / 2 + 1);}}
稍微缩短一点代码
public class L {public static void drawDiamond(int size) {// *// * *// *for (int i = 1; i <= size; i++) {for (int j = 1; j <= 2 * i + size - i; j++) {if (j == 1 + size - i + 1 || j == 2 * i + size - i) {System.out.print("*");} else {System.out.print(" ");}}System.out.println();}}// 倒三角public static void drawDiamond1(int size) {for (int i = size; i >= 1; i--) {for (int j = 1; j <= 2 * i - 1 + size - i; j++) {// 前 size - i个循环中,(j==1||j==2*i-1)不会被触发if (j == 1 + size - i || j == 2 * i - 1 + size - i)System.out.print("*");elseSystem.out.print(" ");}System.out.println();}}public static void main(String[] args) {// TODO 自动生成的方法存根// 打印实心Scanner in = new Scanner(System.in);System.out.println("因为菱形的特殊性质,所以请输入奇数:");int size = in.nextInt();// 菱形的高度drawDiamond(size / 2);
// System.out.println("---------------------");drawDiamond1(size / 2 + 1);}}
其余的方法:
import java.util.Scanner;public class L {// * i, size left = right = size / 2 + 1// * * left-- right++ while i < size / 2 + 1//* * i == size / 2 + 1 left++ right--// * *// *//空心public static void drawdiamond(int size) {int left=size/2+1,right=size/2+1, dir = 1;for(int i=1;i<=size;i++){for(int j=1;j<=size;j++){if(j ==left || j == right){System.out.print("*");} else {System.out.print(" ");} }System.out.println();if (i == size / 2 + 1)dir = -1;left = left - dir;right = right + dir;}}//实心public static void drawdiamond1(int size) {int left=size/2+1,right=size/2+1, dir = 1;for(int i=1;i<=size;i++){for(int j=1;j<=size;j++){if(j >=left && j <= right){System.out.print("*");} else {System.out.print(" ");} }System.out.println();if (i == size / 2 + 1)dir = -1;left = left - dir;right = right + dir;}}public static void main(String[] args) {// TODO 自动生成的方法存根// 打印实心Scanner in = new Scanner(System.in);System.out.println("因为菱形的特殊性质,所以请输入奇数:");int size = in.nextInt();// 菱形的高度drawdiamond(size);drawdiamond1(size);}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
