下面是一个由*号组成的 4 行倒三角形图案。
要求:1.输入倒三角形的行数,行数的取值 3-21 之 间,对于非法的行数,要求抛出提示“非法行数!”。
2.在屏幕上打印这个指定了行数的倒三角形。(注意最后的为一个*)
************
***
*
如下代码:
Scanner scan=new Scanner(System.in);
System.out.println("请输入行数:");
int line=scan.nextInt();
if(line>=3||line<=21){
for(int i=1;i<=line;i++){//确定行数
for(int k=1;k<i;k++){//确定每一行输出前的空格数
System.out.print(" ");
}
for(int j=1;j<=2*(line+1-i)-1;j++){//控制每一行*的输出</span><span style="font-size:14px;">
System.out.print("*");
}
System.out.println();//输出一行后换行
}
}else{
System.out.println("非法输入!");
}
此代码关键在于内层循环中每一行中*的输出,
假设共有n行
第1行: *有(n*2-1)个
第2行: *有(n*2-1-2)个
第3行: *有(n*2-1-4)个
第4行: *有(n*2-1-6)个
........
第n行: *有(n*2-1-(行数-1)*2)个-------------化简为:2*(n-行数+1)-1=2*(n-行数)+1