• 杨辉三角形


    这类题目,一般是求第n行长啥样,也有求从第一行打印到第n行的

    此处,只做了第n行长啥样

    #include<stdio.h>
    #include<string.h>
    //求 杨辉三角形的第n行长啥样
    
    int a[34];
    int b[34];
    
    int main(){
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        a[1] = 1;
        a[2] = 1;
        b[1] = 1;
        int n;
        scanf("%d",&n);
        for(int i = 3;i <= n;i++){
            for(int j = 2; j <= i-1;j++){
                b[j] = a[j - 1] + a[j];
            }
            b[i] = 1;
            for(int x = 1; x <= i;x++){
                a[x] = b[x];
            }
        }
        for(int i = 1;i <= n;i++)
            if(i == 1)
                printf("%d",a[i]);
            else
                printf(" %d",a[i]);
        return 0;
    }

    思路:

    需要两个数组a,b,先将a[1] = 1;a[2] = 1
    再求第n行数组长啥样时,可以先以a为基础,计算b的值,然后将b复制进a

    由上图的连线可以知道:

    for(int j = 2; j <= i-1;j++){
                b[j] = a[j - 1] + a[j];
            }
            b[i] = 1;

    每一个新派生的行,第一位和最后一位是1,可以从第2位开始,往后到第n-1位遍历构建

    然后外层套个大循环,由3到n不断遍历构建即可

  • 相关阅读:
    UVALive 7276 Wooden Signs
    hdu4291 A Short problem
    A
    hdu4686 Arc of Dream
    thinkphp5 模型的 更新操作
    thinkphp5 模型的 新增操作
    thinkphp 模型的创建
    thinkphp5 增删改查操作
    tp5 的查询构造器
    thinkphp5 数据库的原生查询
  • 原文地址:https://www.cnblogs.com/expedition/p/12002972.html
Copyright © 2020-2023  润新知