首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例61:楊輝三角形打印(10行)

     編輯:C 語言實例練習

C語言練習實例61:楊輝三角形打印(10行)

本實例使用二維數組生成並打印前 10 行楊輝三角形(帕斯卡三角形)。

算法邏輯

  • 初始化兩邊為 1:a[i][0]=a[i][i]=1。
  • 內部元素:a[i][j] = a[i-1][j-1] + a[i-1][j](i≥2, 1≤j
  • 按行打印,每行元素數等於行號+1。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>

int main() {
    int i, j;
    int a[10][10];
    printf("\n");
    for (i = 0; i < 10; i++) {
        a[i][0] = 1;
        a[i][i] = 1;
    }
    for (i = 2; i < 10; i++)
        for (j = 1; j < i; j++)
            a[i][j] = a[i-1][j-1] + a[i-1][j];
    for (i = 0; i < 10; i++) {
        for (j = 0; j <= i; j++)
            printf("%5d", a[i][j]);
        printf("\n");
    }
    return 0;
}

運行結果


    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
    1    6   15   20   15    6    1
    1    7   21   35   35   21    7    1
    1    8   28   56   70   56   28    8    1
    1    9   36   84  126  126   84   36    9    1

優化

可使用一維數組滾動更新,空間複雜度 O(n)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved