杨辉三角的C语言实现

来源:互联网 发布:siesta软件优点 编辑:程序博客网 时间:2024/05/22 05:12
//==========================//最基本算法(非递归)//==========================#include <iostream>using namespace std;void pascalTriangle(int maxRow){    int array[100][100];    //初始化数组    for (int i = 0; i < 100; ++i)    {        for (int j = 0; j < 100; ++j)        {            array[i][j] = 0;        }    }    array[0][0] = 1;    for (int i = 0; i < maxRow; ++i)    {        array[i][0] = 1;        array[i][i] = 1;    }    //计算除了三角形两边都为1的其他值    for (int i = 1; i < maxRow; ++i)    {        for (int j = 1; j < maxRow; ++j)        {            array[i][j] = array[i - 1][j - 1] + array[i - 1][j];        }    }    //输出    for (int i = 0; i < maxRow; ++i)    {        for (int j = 0; j < i+1; ++j)        {            printf("%-5d", array[i][j]);        }        cout << endl;    }}int main(){    pascalTriangle(10);    return 0;}
//==========================//递归法//==========================#include<iostream>using namespace std;//计算出第x行,第y列的杨辉三角的值。int calPascalTriangleVal(int x, int y)//x,y分别代表第x行,第y列。x,y都是从0开始计算。{    if (y==0|| x == y)//注意这里的判断条件是y==0而不是x==0!!!是第0列为0。        return 1;    else        return (calPascalTriangleVal(x - 1, y - 1) + calPascalTriangleVal(x - 1, y));}//打印杨辉三角void pascalTriangle(int maxRow){    for (int i = 0; i < maxRow; ++i)    {        for (int j = 0; j < i + 1; ++j)        {            printf("%5d", calPascalTriangleVal(i, j));        }        cout << endl;    }}void main(){    pascalTriangle(10);}
0 0
原创粉丝点击