文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java编写金字塔

2023-09-29 09:46

关注

一、实心金字塔

首先,尝试写一个逐层加1个*的金字塔:
可以看出,每一层由空格和*组成,且空格+*的总数为底部基石的数量,那么前后空格数就是(底部基石数 - 各层星星数)*1/2,然后拼接字符串打印空格+*+空格即可(注意:java直接/会取整)
在这里插入图片描述
然而在计算机显示中,每行列都是垂直对应,可以从上图结果看出,逐层加*并不能保证对其,但保留奇数行可以得到一个正三角金字塔。那么跳过偶数行打印,即可得到一个正三角的金字塔:
在这里插入图片描述
最终代码如下:

public class Test{public static void main(String[] args){int starNum = 7;System.out.println("start=" + starNum);for(int i = 1; i <= starNum;i += 2){String str = "";for(int m=0;m<(starNum - i)/2;m++){str += " ";}for(int n=0;n<i;n++){//can changestr += "*";}for(int m=0;m<(starNum - i)/2;m++){str += " ";}System.out.print(str + "\n");}}}

二、平均分布金字塔

星星交叉分布效果:
在这里插入图片描述
代码只需修改打印*位置的循环,间隔显示*空格

for(int n = 0;n < i;n++){//can changeif(n % 2 == 0){str += "*";}else{str += " ";}//或简化成三目运算//str += n % 2 == 0 ? "*" : " "; }

三、空心金字塔

边缘为*,描绘一个金字塔的形状,效果如下:
在这里插入图片描述
同理,代码只需修改打印*位置的循环,在输出*的字段中,始末位置为*,其余位置为空格,且最后一行全部为*

for(int n=0;n<i;n++){//can changeif(i<starNum){ if((n==0)||(n==i-1)){    str+="*"; }else{   str+=" ";    }    //或者简化为三目运算   //str += n==0||n==i-1?"*":" ";}else{str+="*";}}

补充:
前端转后端的童鞋注意了,在java中,三目运算符不能在里面写赋值语句,这点和js不一样。比如(n > 2) ? (str = "*") : (str = "%");,这句话前端js可以编译通过,但如果放到java里就会编译不通过,报错:不是语句。java中应当这样写:str = n > 2 ? "*" : "%"

来源地址:https://blog.csdn.net/weixin_43939111/article/details/131307299

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯