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

    用一维数组或二维数组打印杨辉三角

    #include <stdlib.h>
    #include <math.h>
    #include <iostream>
    using namespace std;
    
    int a[15][15];
    int aa[1024];
    void yang_2D(){//二维数组打印杨辉三角 
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                if(j==1) a[i][j]=1;
                else a[i][j]=a[i-1][j]+a[i-1][j-1];
            }
        }
        for(int i=1;i<=n;i++){
            for(int k=1;k<=n-i;k++) {
                    printf(" ");
                }
            for(int j=1;j<=i;j++){
                printf("%d  ",a[i][j]);
            }
            printf("
    ");
        }
    } 
    void yang_1D(){//一维数组打印杨辉三角 
        int n;
        int all=0,last=0;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            last=all-1;                                  //last记录第i-1行前面共多少个元素 
            all+=i-1;                                    //all记录第i行前面共多少个元素 
            for(int j=1;j<=i;j++){
                if(j==1||i==j) aa[all+j]=1;              //每行第一个元素和最后一个元素是1 
                else {
                    aa[all+j]=aa[last+j]+aa[last+j+1];   //每个元素的值等于上一行对应元素和后对应元素后一元素之和 
                }
            }
        }
        all=0;
        for(int i=1;i<=n;i++){
            all+=i-1;
            for(int k=1;k<=n-i;k++) printf(" ");
            for(int j=1;j<=i;j++) printf("%d  ",aa[all+j]);
            printf("
    ");
        }
    }
    int main(){
        yang_1D();
        yang_2D();
        return 0;
    } 

  • 相关阅读:
    第九次作业
    第八次作业
    第七次作业
    组合数学—递推关系与母函数
    组合数学—排列组合
    三角函数
    OpenCV初步
    计算机视觉如何入门
    GDB调试技巧:总结篇
    PyQt5之窗口类型
  • 原文地址:https://www.cnblogs.com/xusi/p/14259564.html
Copyright © 2011-2022 走看看