大学常见算法的java实现及思考-打印帕斯卡三角形(杨辉三角)

问题描述:杨辉三角相信大家应该都不陌生,如果不太清楚的话请大家参见这里:百度百科-杨辉三角。本次我们的任务便是编写一个方法,依据输入的行数打印杨辉三角。(ps:据我们的算法老师讲,打印杨辉三角曾经在我们学校的一次期末考试题目中出现,当时还难倒了不少人,吐舌头。现在想想,只要耐下心慢慢的总结杨辉三角的排版以及每个位置上的数据,这个问题也没有什么太难的地方)。

思考:本问题我们主要是要解决两个问题:1、每个位置上的值;2、排版格式。这里我引用百度百科里面的一张图片:

这张图很清晰的展示出了杨辉三角的排版布局。很显然,数字与数字之间我们无法用一个定量的空格来控制,因为随着杨辉三角的层数的增加,每一层的最大值也在不断的变化,所以数字之间的间距必须随着用户输入的层数的变化而变化。对此我的解决办法是求出用户输入层数中出现的最大数值,然后以此数值的位数来进行打印。同时我们也应该注意到,杨辉三角中最后一层的元素个数(包括空格部分)是层数的二倍减一。

综上所述程序的细节如下:

1、依据用户希望打印的层数确定三角中会出现的最大的数值;

2、计算出将要打印出来的数列;

3、将数列中的数值依照“金字塔”型的方式输出;

程序截图:

源码下载:http://download.csdn.net/detail/kenanlinghui/5733527(依旧收取一积分的劳务费,吐舌头)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值