中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > 综合其它
C语言利用数组实现杨辉三角显示程序学习笔记
作者:未知 时间:2005-07-27 23:24 出处:CSDN 责编:chinaitpower
              摘要:C语言利用数组实现杨辉三角显示程序学习笔记

显示杨辉三角图形
杨辉三角问题是一个很常见的数学题,下面我们用数组的方法显示杨辉三角图形。。

杨辉三角是(a+b)的n次幂的展开式系数,如:
(a+b) 系统数是1 1
(a+b)2展开后的系数是 1 2 1

(a+b)3展开后的系数是 1 3 3 1

从而我们得到杨辉三解的系数规律(指数为n):

1、共有n+1组系数,且第K组(从0)开始有K+1个数。

2、每组最后一位与第一位均为1

3、若用二维数组存放系数,每行存放一组,则从第二行开始除最后一个数与第一个数外,每个数都是其所在行的前一行同一列与前一列之各。

解题思路:

首先我们用FOR循环给数组赋值:

#include<iostream>
main()
{
int i,j,a[10][10];
for(i=0;i<10;i++)
 for(j=0;j<10;j++)
  a[i][j]=0;

for(i=0;i<10;i++)
 {
 a[i][0]=1;
 a[i][i]=1;
 }

for(i=0;i<10;i++)
{
 for(j=0;j<10;j++)
  printf("%d ",a[i][j]);
printf("\n");
}

以上这段程序,我这样写,是能够看清内部输出的形式,可以运行一下,可以看到赋值后的效果

当然,前面的那给所有数组赋0没有必要,这只是一个测试过程。。让我们更好的理解实现杨辉三角显示的方法。

上面的程序,我们给杨辉三角的外围数都赋了值,也就是都赋了1,不管有多少层,杨辉三角的最两边的值都为1,所以我们给他们赋了1,

下面我们对其它的数组元素赋值。前面分析中我们发现杨辉三角的规律中的第三点:若用二维数组存放系数,每行存放一组,则从第二行开始除最后一个数与第一个数外,每个数都是其所在行的前一行同一列与前一列之各。那么程序是这样的:

for(i=2;i<10;i++)
for(j=1;j<i;j++)
 a[i][j]=a[i-1][j-1]+a[i-1][j];
这样就可以为外围数据包围的数组元素赋值了,而且是按照上面的规律赋值。

赋完值就可以输出了。。。。。。。。。。。。下面是我边试边写的一个杨辉三角显示程序,总的目标是实现了,有点乱。。但意思表达清楚啦。

数组实现杨辉三角很简单哈。。

#include<iostream>
main()
{
int i,j,a[10][10];
for(i=0;i<10;i++)
 for(j=0;j<10;j++)
  a[i][j]=0;

for(i=0;i<10;i++)
 {
 a[i][0]=1;
 a[i][i]=1;
 }
for(i=0;i<10;i++)
{
 for(j=0;j<10;j++)
  printf("%d ",a[i][j]);
printf("\n");
}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
 a[i][j]=a[i-1][j-1]+a[i-1][j];
 printf("\n");
for(i=0;i<10;i++)
{
 for(j=0;j<i+1;j++)
  printf("%d ",a[i][j]);
printf("\n");
}
for(i=0;i<10;i++)
{
for(j=0;j<(70-6*i)/2;j++)
printf("");
for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
getchar();
getchar();
}

这段程序写得很乱,我们可以好好的写一个程序,首先可以输入一个数代替N幂,就是说要输出多少行的杨辉三角,然后把这个N代进程序里就可以随意输出多少行了。。

简单的东西就不多说了。。看完了,就会了的!


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有