帕斯卡三角形(Pascal's triangle)

// The following code is compiled on VC2005

//

#include "stdafx.h"

/*-----------------------------------------------
下面数值模式称为帕斯卡三角形(Pascal's triangle)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
   ...
三角形边界上的数都是1,内部的每个数数是位于它上面的两个数之和。
写一个过程,采用递归算法计算过程计算出帕斯卡三角形。

// in china, 可叫做"杨辉三角或贾宪三角"
-------------------------------------------------*/
static long GetElement(const long row, const long col)
{
    // 每行的外围两个元素为1
    if ((1 == col) || (row == col))
        return 1;
    else
        // 其余的部分为上一行的(col - 1)和(col)元素之和
        return GetElement(row - 1, col - 1) + GetElement(row - 1, col);
}

static long PascalTriangle(const long n)
{
    int row;
    int col;

    for (row = 1; row <= n; ++row)
    {
        for (col = 1; col <= row; ++col)
            printf(" %4ld", GetElement(row, col));
        printf("/n");
    }

 return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
   PascalTriangle(5);
 return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值