杨辉三角的问题,借助二维数组的方法来解决。

这篇具有很好参考价值的文章主要介绍了杨辉三角的问题,借助二维数组的方法来解决。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 1 public class code1 {
 2     public static void main(String[]args) {
 3         int[][] x = new int[6][6];
 4         for (int i = 0; i < x.length; i++) {
 5             x[i][0] = 1;
 6             x[i][i] = 1;
 7 
 8         }
 9         for (int i = 2; i < x.length; i++) {
10             for (int j = 1; j < i; j++) {
11                 x[i][j] = x[i - 1][j - 1] + x[i - 1][j];
12             }
13 
14         }
15 
16 
17         for (int i = 0; i < x.length; i++) {
18             for (int j = 0; j < i + 1; j++) {
19                 System.out.printf("%-3d",x[i][j]);
20             }
21             System.out.println();
22         }

杨辉三角的问题,借助二维数组的方法来解决。

 

题目:杨辉三角的变形,由原来的等腰三角形变成直角三角形,但规律还是没有发生改变,所以我们还是按照原来的题目做。

根据题目分析发现三角形的第一列和每一行的最后一个都是数值1,那我们根据这个使用循环来把这些地方的值赋值为1;文章来源地址https://www.toymoban.com/news/detail-760636.html

 for (int i = 0; i < x.length; i++) {
          x[i][0] = 1;
              x[i][i] = 1;
第二个那就是除了刚才的那些地方,其他的位置我们要赋值,根据规律,借用循环来完成。用i来表示行数,用J来表示每一行的下标,也可以了解为例数。
之所以i是从2开始的是因为前面俩行是一个只有一个数,还有一个是只有2个数,根据题意知,他们都是1,那也就是说他们不参与我们这个数的计算所以我们从2开始循环。
而i是每一行的下标,因为前面的每一行的首个和最后一个是1,那么我们就可以不要把这些数进行计算。
for (int i = 2; i < x.length; i++) {
             for (int j = 1; j < i; j++) {
                x[i][j] = x[i - 1][j - 1] + x[i - 1][j];(这行代码就是杨辉三角数与数之间的关系)
           }
最后我们已经把这个二维数组已经搞好了,那接下来我们应该把它们给输出来,同样也是借助循环来输出,这里不能借助foreach来,因为这个输出的格式有要求,所以我们输出格式化。
 for (int i = 0; i < x.length; i++) {
           for (int j = 0; j < i + 1; j++) {
                System.out.printf("%-3d",x[i][j]);
}
第二个循环为什么要加一呢,我们来看,在第一个循环中i是从0到5,也就是有6行,如果J小于i的话 ,那我们的J的取值范围就是0到4,i是能取到5,但,J是不能取到的,因为是小于不能等于,
所以我们在i的基础上加上1,就可以了。
这是我关于这道题的想法。


到了这里,关于杨辉三角的问题,借助二维数组的方法来解决。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LeetCode】118. 杨辉三角

    题目链接 直觉解法: 以下的理论介绍 可以说和 本题的 代码实现 毫无关系。 这个版本 需要注意 列表的边界 思路: 前一行 两端 补0 模拟。 结合 动图 理解 题目 说明至少 一行,可以跳过 第一行的处理 官方版本

    2024年02月07日
    浏览(37)
  • 杨辉三角(Java)

     实现思路:我们可以先把杨辉三角想象成一个空的二维数组,然后再给它赋值输出即可。 关键在于如何赋值:仔细观察上图可以得出除了 每一行第一个数以及最后一个数(都是1) , 中间的数字规律就是: a[ i ][ j ] = a[ i - 1 ][ j - 1 ] + a[ i - 1 ][ j ] 实现代码: 相信大家更多的

    2024年02月08日
    浏览(34)
  • 【C语言】-- 杨辉三角

    目录 一.什么是杨辉三角? 二.实现方法 1.直角三角形版 2.等腰三角形版 杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。 形如: 我们不难看出其存在明显的规律。 即:图片的 两个斜边都是数字1 , 其余的数都等于 它所在层的肩上(

    2024年02月13日
    浏览(44)
  • C练习——杨辉三角

    题目: 打印近似杨辉三角,行数n自选 百度找的杨辉三角,参考一下: 解析: 把它的全部元素左对齐,就可以看成近似杨辉三角的样子 1 1  1 1  2  1 1  3  3  1 1  4  6  4  1 ……  每个数等于它上方两数之和 每行数字左右对称,由1开始逐渐变大 行数与列数相同,第n行有

    2024年01月17日
    浏览(36)
  • 打印杨辉三角

    这个公式,不好算,我觉得还是杨辉三角算起来方便:c#代码如下:    double 打印杨辉三角(int n)//n必须是偶数,展开项是n+1,中间项是n/2,此处返回中间项的概率202306131722         {             //for (int i = 0; i n; i++)             //{             //    //这种方法直接算,使

    2024年02月09日
    浏览(36)
  • 每日一题,杨辉三角

    给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 示例 1: 示例 2:

    2024年02月04日
    浏览(36)
  • 动态规划-杨辉三角

    该算法题分别是: 118. 杨辉三角。 119. 杨辉三角 II 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 1.2.1 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 1.2.2 示例 2: 输入: numRows = 1 输出: [[1]] 1.2.3 提示: 1 = numRows = 30 来源:力扣(LeetCode) 链接:https://

    2024年02月13日
    浏览(39)
  • [LeetCode] #118 杨辉三角

    给定一个非负整数  numRows , 生成「杨辉三角」的前  numRows   行。 在「杨辉三角」中, 每个数是它左上方和右上方的数的和。 杨辉三角:  

    2024年02月15日
    浏览(34)
  • LC-杨辉三角-记忆版

    上一篇:LC-杨辉三角 上一篇讲了杨辉三角的算法,不过之前的算法存在一个问题,比如: 我们可以看到计算a[5][3]和a[5][4]时都需要a[4][3]的值,之前我们是需要每次用到都重新计算,这样就比较耗时,有没有办法记住已经算过的值呢,当下次用的时候直接获取就不用重新计算

    2024年02月13日
    浏览(34)
  • leetcode-杨辉三角ii

    119. 杨辉三角 II 题解: 首先,我们需要创建一个列表来存储杨辉三角的每一行。 然后,我们需要计算每一行的元素。每一行的每个元素都是上一行的两个相邻元素的和。第一个和最后一个元素总是1。 最后,我们返回第rowIndex行。

    2024年01月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包