刚入黑马几天,学了一点敲代码,现在给大家看看如何用java敲出金字塔啦
1问题
打印出”*“金字塔图
2.分析
这时一个很经典的循环应用的问题。我们都知道,打印输出的时候,都是从
最左端输出,先出空格,然后打印*,这实际是因为三角形之前有很多空格。
3.确定框架
public class ZiJinTa{
public static void main(String[] args) {
for(i = 1; i<= 5; i++) //循环5次,打印5行 {
//打印若干空格 //打印若干符号 }
}
}
//2.寻找空格和*规律
/*行数 空格数 符号数
1 4 5-1 1 1*2-1
2 3 5-2 3 2*2-1
3 2 5-3 5 3*2-1
4 1 5-4 7 4*2-1
5 0 5-5 9 5*2-1 规律 依次递减1 5-行数 依次递增2 行数*2-1
*/
//3.打印空格数
//由于每行空格数有“5-行数”的规律,对应代码如下:
for(i =1; i<= n; i++)
{
for(j = 1; j <= n – i; j++) //根据外层行号,输出符号左边空格
System.out.println(“ ”);
}
//4.打印*号
//由于每行符号数有着“行数*2-1”的规律,对应代码如下:
for(i =1; i<= n; i++)
{
for(k = 1; j <= i * 2 -1; k++) //根据外层行号,输出符号数
System.out.println(“*”);
}
因此,整个流程已经列清楚了,金子塔也能出来,那么问题来了,如和打印倒数金字塔呢
代码如下:
public class ZiJinTa {
public static void main(String[] args) {
//假设打印5层金字塔,那么第一层就有9个*号
int layer=5;
for(int =1;i<=layer;i++){
for(int j=1;j<=i;j++){
//首先要打印空格,找出空格规律
System.out.print(" ");
}
for(int f=9;f>0&&f>=2*i-1;f--){
System.out.print("*");
}
System.out.println();
}
}
大家看懂了吗,嘿嘿,有点小难哎
|
|