zoukankan      html  css  js  c++  java
  • I00001 杨辉三角

    杨辉三角国际上称为Pascal三角形。

    杨辉三角与菲波拉契数列也是有关系的,看以下的图就知道了。

    这里给出来两种方法的实现,一是使用二维数组来存储杨辉三角,二是使用一维数组来存储杨辉三角并且一边计算一边输出结果。

    使用一维数组作为存储,实现打印杨辉三角,需要的技巧更高一些。

    本文插图来自维基百科。

    #include <stdio.h>
    
    // 使用二维数组的杨辉三角程序
    void pascal1()
    {
        int n, i, j;
    
        scanf("%d", &n);
        int pascal[n][n];
    
        for(i=0; i<n; i++)
            for(j=0; j<=i; j++) {
                if(j == 0 || j == i)
                    pascal[i][j] = 1;
                else
                    pascal[i][j] = pascal[i-1][j] +pascal[i-1][j-1];
            }
    
        for(i=0; i<n; i++) {
            for(j=0; j<=i; j++)
                printf("%d ", pascal[i][j]);
            printf("
    ");
        }
    }
    
    // 使用一维数组的杨辉三角程序
    void pascal2()
    {
        int n, i, j;
    
        scanf("%d", &n);
        int pascal[n];
    
        for(i=0; i<n; i++) {
            for(j=i; j>=0; j--) {
                if(j == i || j == 0)
                    pascal[j] = 1;
                else
                    pascal[j] += pascal[j-1];
                printf("%d ", pascal[j]);
            }
            printf("
    ");
        }
    }
    
    int main(void)
    {
        pascal1();
        pascal2();
    
        return 0;
    }

    两种打印杨辉三角的程序,分别输入阶数5和6,其输出结果如下:

    5
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    6
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 10 5 1

  • 相关阅读:
    Why use strong named assemblies?
    Dependency Walker
    “等一下,我碰!”——常见的2D碰撞检测
    MOBA游戏的网络同步技术
    VS2017如何配置openGL环境
    UE4关于Oculus Rift (VR)开发忠告
    UE4 的json读写方式
    Blueprint 编译概述
    UE4编码规范
    Unreal Enginer4特性介绍
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564926.html
Copyright © 2011-2022 走看看