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;
    } 

  • 相关阅读:
    Windows常用命令
    路由器命令基础使用
    《计算机网络》-CCNA命令大全
    Cisco 2960交换机配置
    vscode使用技巧
    Luogu 3321 [SDOI2015]序列统计
    Luogu 3702 [SDOI2017]序列计数
    CF 990 Educational Codeforces Round 45
    Luogu 4705 玩游戏
    CF 438E The Child and Binary Tree
  • 原文地址:https://www.cnblogs.com/xusi/p/14259564.html
Copyright © 2011-2022 走看看