思勤无邪

上学时,因我年龄最小,个头也最小,上课时,就像大猩猩堆里的猴一般。如今,这猴偶尔也把最近的一些情况写在这里。

   :: 首页 :: 联系 :: 聚合  :: 管理
  132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

公告

     吾日常三省吾身,曰思、曰勤、曰无邪。

积分与排名

  • 积分 - 181280
  • 排名 - 142

最新随笔

最新评论

阅读排行榜

评论排行榜

杨辉三角具有以下形式,规律为除两侧的元素均为1以外,其余每个位置上数值都等于其左上角元素与右上角元素之和:

            1
          1   1
        1   2   1
      1   3   3   1
    1   4   6   4   1
  1   5   10  10   5  1

上面的形式不适于用程序实现,往往都改写成下面的形式,规律为除两侧元素均为1以外,其余每个位置上的元素值为其正上方元素与左上角元素之和,用数组来描述则为a[i][j]=a[i-1][j]+a[i-1][j-1]:

1
1   1
1   2   1
1   3   3   1
1   4   6   4   1
1   5  10  10  5  1



//  杨辉三角的C++实现
//  未判断 int 溢出
//  VS2005下编译通过
#include  < iostream >
#include 
< iomanip >

using   namespace  std;

int  prompt()
{
    
int  n;
    cout
<<   " Input a positive number, "   <<  endl
        
<<   " nonpositive will quit! "   <<  endl
        
<<   " > "  ;
    cin 
>>  n;
    
return  n;
}


void  main()
{
    
int  i, j, n;

    
while ((n  =  prompt())  >   0 )
    
{
        
int   ** =   new   int * [n];

        
for (i = 0 ; i < n; i ++ )
        
{
            a[i] 
=   new   int [i + 1 ];
            
//  两侧元素均为1
            a[i][i]  =  a[i][ 0 =   1 ;
            
for (j = 1 ; j < i; j ++ )
            
{
                a[i][j] 
=  a[i - 1 ][j]  +  a[i - 1 ][j - 1 ];
            }

        }

        
for  (i = 0 ; i < n; i ++ )
        
{
            
for (j = 0 ; j <= i; j ++ )
                cout 
<<  setw( 80 / n)  <<  a[i][j];
            cout 
<<  endl;
            delete[] a[i];
        }

        delete []a;
    }

}
posted on 2006-10-09 11:06 思勤无邪 阅读(869) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理