论文网
English Papers
万事OK网
发表论文
 
 首页 > IT文章 > 程序设计 >
杨辉三角算法源码

[科技论文网] http://www.scipapers.com    2007-12-01  

    杨辉三角算法源码

    杨辉三角的结构如下:

                             1
                         1     1
                     1      2      1
                 1      3       3      1
             1      4       6      4      1
         1      5      10      10     5      1 
                       ......
     
    算法如下:
    #include<iostream.h>
    #define MAX 100
    void main()
    {
           int a[MAX][MAX],i,j,n;
            cout<<"Enter n=";
           cin>>n;
           for(i=0;i<n;i++)
           {
                  a[i][0]=1;//将边界上的点
                   a[i][i]=1;//赋值为1
           }
           for(i=1;i<n;i++)
                  for(j=1;j<i;j++)
                         a[i][j]=a[i-1][j-1]+a[i-1][j];//自己画个数组出来直观些
           for(i=0;i<n;i++)
           {
                  for(j=0;j<=i;j++)
                         cout<<a[i][j]<<' ';
                  cout<<endl;
           }
    }

    #include <iostream.h>
    #include <iomanip.h>

    typedef long (*FunPtr)( long, long );

    long Factorial( long value );
    long GetElementMethod1( long row, long col );
    long GetElementMethod2( long row, long col );
    void Output( long step, FunPtr funptr );

    // 程序入口点
    int main()
    {
        FunPtr funptr;
       
        // 使用数学公式方法输出杨辉三角
        funptr = GetElementMethod1;
        Output( 6, funptr );

        cout << endl;

        // 使用递归输出杨辉三角
        funptr = GetElementMethod2;
        Output( 6, funptr );

        return 0;
    }

    // 获取当前参数的阶乘值
    long Factorial( long value )
    {
        if ( value == 0 || value == 1 )
            return 1;
        else
            return value * Factorial( value - 1 );
    }

    // 获取杨辉三角第row行第col列元素的值
    long GetElementMethod1( long row, long col )
    {
        return Factorial( row ) / ( Factorial( row - col ) * Factorial( col ) );
    }

    // 获取杨辉三角第row行第col列元素的值
    long GetElementMethod2( long row, long col )
    {
        if ( col == 0 || row == col )
            return 1;
        else
            return GetElementMethod2( row - 1, col - 1 ) + GetElementMethod2( row - 1, col );
    }

    // 输出杨辉三角,step为杨辉三角的阶数。
    void Output( long step, FunPtr funptr )
    {
        for ( int row = 0; row <= step; ++row )
        {
            for ( int col = 0; col <= row; col++ )
            {
                cout << setw( 5 ) << funptr( row, col );
            }

            cout << endl;
        }
    }

        来源:

声明:本文由网友推荐或作者提交,版权归原作者所有,刊登此文仅为传播知识,展示研究成果,提高文章引用率。未经原作者授权,禁止用于任何形式的商业行为。科技论文网倡导尊重知识、尊重劳动、保护原创、知识共享。由于部分论文文章来于网络,文章作者不祥,请相关的原创作者与我们联系,以便加上您的署名。

  
杨辉三角算法源码
下面没有链接了     C脚本递归算法-计算八皇后问题
最新论文
·[程序设计]杨辉三角算法源码
·[程序设计] C脚本递归算法-计算八皇后问题
·[程序设计]经典算法-算术表达式求值
·[程序设计]顺序表上的插入算法
·[程序设计]并查集的最小生成树算法
·[程序设计]概率算法简介
·[程序设计]概率算法简介
·[程序设计]猴子选大王-C源代码
·[程序设计]快速字符串搜索算法KMP
·[程序设计]最短路径算法源码
 
 

搜索论文

Google
论文分类

论文网 论文发表网 论文 免费论文网 找论文网 毕业论文 中国论文网 英语论文 百度论文 聘教网 易搜
 免费发布论文    中国论文网 2008版权所有  业务联系:pinjiao@126.com