牛客网——杨辉三角

简介: 牛客网——杨辉三角

前言


今天咱一起学习一下杨辉三角

一、杨辉三角


题目来源:

杨辉三角_牛客题霸_牛客网

描述


KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。

输入描述:


第一行包含一个整数数n。 (1≤n≤30)

输出描述:


包含n行,为杨辉三角的前n行,每个数输出域宽为5。

二、分析问题


首先我们看杨辉三角的形式

   1

   1    1

   1    2    1

   1    3    3    1

   1    4    6    4    1

   1    5   10   10    5    1

可能数学不太好的人(比如我),感觉毫无头绪,找不到规律,没有规律就没法解题,这肯定是不行的,其实我们去查找资料就不难知道,杨辉三角的规律其实很简单:首位和末尾是1,然后除了1的部分,它的数字等于它上面,和左上两个数字之和,那我们就可以解题了!

三、解决问题


代码如下:

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    int arr[30][30]={0};
    for(int i=0;i<n;i++){
        for(int j=0;j<=i;j++){
            if(j==0||j==i){
               arr[i][j]=1;        //首先输入首位的1
            }
            else{
                arr[i][j]=arr[i-1][j]+arr[i-1][j-1];      //如果不是1,上面+左上
            }
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<=i;j++){
           printf("%5d",arr[i][j]);         //域宽为5,输出
        }
        printf("\n");            //记得换行
    }
    return 0;
}

总结


以上就是解题和大家学习的内容,本文只是简单地介绍了一下杨辉三角的解法,如果有不同的意见欢迎交流,码字不易,请多多支持~

相关文章
|
6天前
|
索引
leetcode-119:杨辉三角 II
leetcode-119:杨辉三角 II
34 0
【每日一题】4.LeetCode——杨辉三角
【每日一题】4.LeetCode——杨辉三角
|
6天前
leetcode-118:杨辉三角
leetcode-118:杨辉三角
32 0
|
6天前
牛客网-替换空格
牛客网-替换空格
19 0
|
7月前
|
索引
【Leetcode-118. 杨辉三角 -119. 杨辉三角Ⅱ】
【Leetcode-118. 杨辉三角 -119. 杨辉三角Ⅱ】
17 0
|
8月前
leetcode:118. 杨辉三角
函数原型:int** generate(int numRows, int* returnSize, int** returnColumnSizes) 参数解析:numRows是指明要求前几行杨辉三角 returnSize是返回指针数组的元素个数 returnColumnSizes是指明杨辉三角每一行有几个元素
36 0
|
9月前
力扣118.杨辉三角
给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。链接位置:力扣。
26 0