打印星号三角 菱形
星号三角形
方法一
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner in=new Scanner(System.in);
int n = in.nextInt(); //用户输入一共n行
int i = 1; //i表示第i行
while(i<=n) {
for(int count = 1;count<=n-i;count++) // ***引入计数器count***
{
System.out.print(" ");//观察发现,需先打印有规律1的空格。一个个的打印空格。
}
for(int count = 1;count<=2*i-1;count++)
{
System.out.print("*");//规律2,一个一个打印星号
}
i++;
System.out.println();}
}
}
注:规律1:空格数为最多的星号的数量减去第i行星号数的差除以二,即为第i行有n-i个空格。
规律2:i=1时,星号有1个
i=2时,星号有3个
以此类推 第i行须用循环打印出2*i-1个星号
besides.循环结构由内向外运行,内部一次循环输出一行空格与星号后,需要换行,因此用while循环中最后用println。
方法二
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner in=new Scanner(System.in);
int n = in.nextInt();
int i = 1;
String sum = "*";
while(i<=n)
{
for(int count = 1;count <=n-i;count++)
{
System.out.print(" ");
}
System.out.print(sum);
sum = sum+"**";
i++;
System.out.println();
}
//用字符串循环来做会简单,但空格递减不容易用
}
}
星号菱形
用户输入星号菱形的边长
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner in=new Scanner(System.in);
int n = in.nextInt();
int i = 1;
int a = 1;
while(i<=n) {
for(int count = 1;count<=n-i;count++) {
System.out.print(" ");
}
for(int count = 1;count<=2*i-1;count++)
{
System.out.print("*");
}
i++;
System.out.println();}
while(a<=n-1){
for(int count = 1;count<=a;count++)
{
System.out.print(" ");
}
for(int count = 1;count<=2*(n-a)-1;count++)
{
System.out.print("*");
}a++;
System.out.println();
}
}
}
等腰星号三角形的基础掌握后,就可以把菱形看作两个三角形拼接,一个行数为菱形边长,一个为倒三角,行数为菱形边长减1,倒三角行思想相同。
在此只解释倒三角部分的数据:便于理解,a为倒三角第a行。第a行的空格有a个;第a行星号数为2*(n-a)-1 找规律
倒三角也可以用以下:
while(i<=2*n-1){
for(int count = 1;count<=i-n;count++)
{
System.out.print(" ");
}
for(int count = 1;count<=2*(2*n-i)-1;count++)
{
System.out.print("*");
}i++;
System.out.println();
}
此时不在引用a,仍用i
用数学方法知道倒三角第i行相当于正三角的2n-i行
则第i行星号数为 2(2n-i)-1。