python的for语句打印金字塔图形_for循环打印金字塔
classTest
{public static voidmain(String[] args)
{//打印镂空的菱形
/**
* *
* *
* *
* *
* *
**/
//分析:镂空的菱形由上三角和下三角组成 并且三角形式镂空的//根据前面打印的镂空三角形的基础上去组个---告诉我们一个道理遇到稍微复杂的问题:应该善于拆解成一个一个的组件然后分别测试后进行组合//先打印一个镂空的三角形
/**
* *
* *
********/
int lay=4;for(int i=1;i<=lay;i++){//1、外层循环控制层数
for(int k=1;k<=lay-i;k++){//3、打印空格
System.out.print(" ");
}for(int j=1;j<=1+(i-1)*2;j++){//2、利用等差数列的原理,an=a1+(n-1)*d 每次等打印最多的*就是an项的值
if(i==1){//4、首层打*最后一层不打*
System.out.print("*");
}else{if(j==1||j==1+(i-1)*2){//5、中间层有*的部分是第一个和最后一个
System.out.print("*");
}else{
System.out.print(" ");//6、中间层其余部分全是空格
}
}
}
System.out.println();
}//System.out.println("------------------------分割线------------------------------------------------");//上面的部分打印好了 继续打印下面的部分/********
* *
* *
**/
//惯例:先打印出实心的三角形
/********
*****
***
**/
//分析:1->7 2->5 3-3 4->1
int lay1=4;for(int i=lay1;i>=1;i--){//第一层实际上是最后一次 所以反转
for(int k=0;k0 3->1 2->2 1->3
System.out.print(" ");
}for(int j=2*i-1;j>=1;j--){//第一层的*数 建立和层数的关系
if(i==1){//只有最后一层才打1个*
System.out.print("*");
}else{if(j==2*i-1||j==1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
}
System.out.println();
}
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)