注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

HongMain 的博客

关注编程技术: Linux, Windows, C/C++

 
 
 

日志

 
 
 
 

杨辉三角  

2011-08-06 11:11:13|  分类: 实用代码 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

杨辉三角具有以下形式,规律为除两侧的元素均为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


杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客
//  杨辉三角的C++实现
杨辉三角 - HongMain - HongMain 的博客
//  未判断 int 溢出
杨辉三角 - HongMain - HongMain 的博客
//  VS2005下编译通过
杨辉三角 - HongMain - HongMain 的博客
#include  < iostream >
杨辉三角 - HongMain - HongMain 的博客#include 
< iomanip >
杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客
using   namespace  std;
杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客
int  prompt()
杨辉三角 - HongMain - HongMain 的博客
{
杨辉三角 - HongMain - HongMain 的博客    
int  n;
杨辉三角 - HongMain - HongMain 的博客    cout
<<   " Input a positive number, "   <<  endl
杨辉三角 - HongMain - HongMain 的博客        
<<   " nonpositive will quit! "   <<  endl
杨辉三角 - HongMain - HongMain 的博客        
<<   " > "  ;
杨辉三角 - HongMain - HongMain 的博客    cin 
>>  n;
杨辉三角 - HongMain - HongMain 的博客    
return  n;
杨辉三角 - HongMain - HongMain 的博客}

杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客
void  main()
杨辉三角 - HongMain - HongMain 的博客
{
杨辉三角 - HongMain - HongMain 的博客    
int  i, j, n;
杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客    
while ((n  =  prompt())  >   0 )
杨辉三角 - HongMain - HongMain 的博客    
{
杨辉三角 - HongMain - HongMain 的博客        
int   ** =   new   int * [n];
杨辉三角 - HongMain - HongMain 的博客
杨辉三角 - HongMain - HongMain 的博客        
for (i = 0 ; i < n; i ++ )
杨辉三角 - HongMain - HongMain 的博客        
{
杨辉三角 - HongMain - HongMain 的博客            a[i] 
=   new   int [i + 1 ];
杨辉三角 - HongMain - HongMain 的博客            
//  两侧元素均为1
杨辉三角 - HongMain - HongMain 的博客
            a[i][i]  =  a[i][ 0 =   1 ;
杨辉三角 - HongMain - HongMain 的博客            
for (j = 1 ; j < i; j ++ )
杨辉三角 - HongMain - HongMain 的博客            
{
杨辉三角 - HongMain - HongMain 的博客                a[i][j] 
=  a[i - 1 ][j]  +  a[i - 1 ][j - 1 ];
杨辉三角 - HongMain - HongMain 的博客            }

杨辉三角 - HongMain - HongMain 的博客        }

杨辉三角 - HongMain - HongMain 的博客        
for  (i = 0 ; i < n; i ++ )
杨辉三角 - HongMain - HongMain 的博客        
{
杨辉三角 - HongMain - HongMain 的博客            
for (j = 0 ; j <= i; j ++ )
杨辉三角 - HongMain - HongMain 的博客                cout 
<<  setw( 80 / n)  <<  a[i][j];
杨辉三角 - HongMain - HongMain 的博客            cout 
<<  endl;
杨辉三角 - HongMain - HongMain 的博客            delete[] a[i];
杨辉三角 - HongMain - HongMain 的博客        }

杨辉三角 - HongMain - HongMain 的博客        delete []a;
杨辉三角 - HongMain - HongMain 的博客    }

杨辉三角 - HongMain - HongMain 的博客}

杨辉三角 - HongMain - HongMain 的博客
  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017