问题描述
一、在控制台输出以星号打印的三角形
思路:在外部使用循环语句执行5次每次打印1行,每行的内容分别为空格和星号,每行空格缩进的数量为5减去所在行数,星号的数量是所在行数的2倍减1。在内部使用循环语句首先打印空格,然后打印星号"*",对应的打印次数用循环次数控制,打印星号之后就可以换行。
public static void main(String[] args) {
//打印图形,
int n=5;//表示要打印几行
for(int i=1;i<=n;i++) {//i表示每行
//先打印空格:n-i个
for(int j=0;j<n-i;j++) {
System.out.print(" ");
}
//再打印星号,i*2-1个
for(int j=0;j<i*2-1;j++) {
System.out.print("*");
}
// for(int j=0;j<n-i+i*2-1;j++) {
// if(j<n-i) {
// System.out.print(" ");
// }
// else {
// System.out.print("*");
// }
// }
System.out.println();
}
}
二、在控制台打印输出菱形
思路:将菱形看成上下两个三角形,用打印三角形的方法打印
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
creat(n);
}
public static void creat(int n) {
int n1=n/2;
for(int i=1;i<=n1;i++) {//上半部分的三角形
for(int j=1;j<=n1-i;j++) {
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++) {
System.out.print("*");
}
System.out.println();
}
for(int i=n1-1;i>=1;i--) {//下半部分的三角形
for(int j=1;j<=n1-i;j++) {
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++) {
System.out.print("*");
}
System.out.println();
}
}