第一种:
代码:
import java.util.Scanner;
public class day10_04 {
public static void main(String[]args){
Scanner a=new Scanner(System.in); /得到键盘输入
for(;;){
int sz=a.nextInt(); /菱形的总长度
int yiban=(sz+1)/2; /得到菱形的上半部分长度=总长度+1再/2
上半部分开始
for(int j=1;j<=yiban;j++){ /上半部分的循环次数,几次就是几行
for(int kong=1;kong<=yiban-j;kong++){ /打印空格的次数=上半部分循环总次数-当前循环到了第几行
System.out.print(" ");
}
for(int hua=1;hua<=(j*2)-1;hua++){ /打印*的次数=当前循环到了第几行*2-1
因为每行多加两个*,所以乘以二
System.out.print("*");
}
System.out.println(); /换行
}
--------------------------------------------------------------------------
下半部分开始
int shengyu=sz-yiban; /得到菱形的下半部分=总长度-上半部分
for(int j=1;j<=shengyu;j++){ /下半部分的循环次数,重新开始计数
for(int kong=1;kong<=j;kong++){ /打印空格的次数=下半部分循环到了第几行
System.out.print(" ");
}
for(int hua=1;hua<=sz-j*2;hua++){ /打印*的次数=菱形的总长度-下半部分循环到了第几行的两倍
因为每行多减两个*,所以乘以二
System.out.print("*");
}
System.out.println();
}
}
}
}
第二种:
代码:
import java.util.Scanner;
public class day11_08 {
public static void main(String[]args){
Scanner a=new Scanner(System.in);
for(;;){
int sz=a.nextInt();
int yiban=(sz+1)/2;
for(int j=1;j<=yiban;j++){
for(int i=1;i<=yiban-j;i++){
System.out.print(" ");
}
for(int i=1;i<=j*2-1;i++){
if(i>j){
System.out.print(j*2-i);
}else{
System.out.print(i);
}
}
System.out.println("");
}
int shengyu=sz-yiban;
for(int j=1;j<=shengyu;j++){
for(int i=1;i<=j;i++){
System.out.print(" ");
}
for(int i=1;i<=sz-j*2;i++){
if(i>yiban-j){
System.out.print(sz+1-j*2-i);
}else{
System.out.print(i);
}
}
System.out.println("");
}
}
}
}
第三种:
代码:
import java.util.Scanner;
public class day11_06 {
public static void main(String[]args){
Scanner a=new Scanner(System.in);
for(;;){
int sz=a.nextInt();
for(int j=1;j<=sz;j++){
for(int kong=1;kong<=sz-j;kong++){
System.out.print(" ");
}
for(int hua=1;hua<=j;hua++){
System.out.print(hua);
System.out.print(" ");
}
System.out.println();
}
for(int j=1;j<=sz;j++){
for(int kong=1;kong<=j;kong++){
System.out.print(" ");
}
for(int hua=1;hua<=(sz-1-j)+1;hua++){
System.out.print(hua);
System.out.print(" ");
}
System.out.println();
}
}
}
}