• 牛客网——杨辉三角



    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…


    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

    目录

    前言

    一、杨辉三角

    描述

    输入描述:

    输出描述:

    二、分析问题

    三、解决问题

    总结


    前言

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


    一、杨辉三角

    题目来源:

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

    描述

    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的部分,它的数字等于它上面,和左上两个数字之和,那我们就可以解题了!


    三、解决问题

    代码如下:

    1. #include<stdio.h>
    2. int main(){
    3. int n;
    4. scanf("%d",&n);
    5. int arr[30][30]={0};
    6. for(int i=0;i<n;i++){
    7. for(int j=0;j<=i;j++){
    8. if(j==0||j==i){
    9. arr[i][j]=1; //首先输入首位的1
    10. }
    11. else{
    12. arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; //如果不是1,上面+左上
    13. }
    14. }
    15. }
    16. for(int i=0;i<n;i++){
    17. for(int j=0;j<=i;j++){
    18. printf("%5d",arr[i][j]); //域宽为5,输出
    19. }
    20. printf("\n"); //记得换行
    21. }
    22. return 0;
    23. }


    总结

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

  • 相关阅读:
    小马识途:如何稀释百科词条里的负面信息?
    JAVA基础(秋招总结)
    Golang 函数 不定参数
    十二、Java中的各种锁
    《机器人学一(Robotics(1))》_台大林沛群 第 4 周【机械臂 逆运动学】 Quiz 4
    numpy对数组进行过滤并获取下标
    如何让图片放大不模糊?
    三十七、【进阶】验证索引的效率
    PROSAIL模型的植被参数光学遥感反演
    智能视频监控平台EasyCVR如何使用接口批量导出iframe地址?
  • 原文地址:https://blog.csdn.net/m0_72503424/article/details/126394187