『壹』 编程序输出杨辉三角,用一个函数实现
#include<stdio.h>
int main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j-0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格专*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第属j个值*/
printf("\n");
}
}
void int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}
『贰』 用c语言编写程序 输出杨辉三角
程序:
#include<stdio.h>
int main()
int n,i,j,a[100];
n=10;
printf(" 1");
printf(" ");
a[1]=a[2]=1;
printf("%3d%3d ",a[1],a[2]);
for(i=3;i<=n;i++)
{
a[1]=a[i]=1;
for(j=i-1;j>1;j--)
a[j]=a[j]+a[j-1];
for(j=1;j<=i;j++)
printf("%3d",a[j]);
printf(" ");
}
return 0;
}
应用
与杨辉三角联系最紧密的是二项式乘方展开式的系数规律,即二项式定理。例如在杨辉三角中,第3行的三个数恰好对应着两数和的平方的展开式的每一项的系数(性质 8),第4行的四个数恰好依次对应两数和的立方的展开式的每一项的系数。
以上内容参考:网络-杨辉三角
『叁』 请编一程序输出以下的杨辉三角形,要求输出10行
文章有错误,我要报错 到论坛交流、讨论 对该文章进行评论 进入VIP视频站下载视频- import java.math.BigInteger;/** * 类名: TestYangHuiSanJiao 说明: 用三种方法输出"杨辉三角" 注: 最简单的方法就是是定义一个二维数组, 保存产生的所有"杨辉三角"值, 但是如果要输入一个比较大的"杨辉三角"(如 * 100000行),就必需申请一个100000 * 100000的数组,那就需要37多G的内存,正常工作或者家用电脑应该没有能达到这个 要求的,就算是10000 * 10000 的数组也需要400M左右的内存. * 所以,只需要记录对后面计算有用的"杨辉三角"值. */public class TestYangHuiSanJiao{ public static void main(String[] args) { YangHui2 yangHuiTest = new YangHui2(100); yangHuiTest.printYangHui(); }}/** * 类名: YangHui2 说明: 定义一个一维数组,记录当前行的值注: 数组初始状态为上一行元素, 修改其值使之成为当前行的元素值."即:当前元素的值 * 为前一元素与当前元素的和",当前元素在计算下一元素时会用到,所以在覆盖当前元素之前必需保留其初始值参与下次运算 */class YangHui2{ BigInteger[] arr1; // 定义数组记录上一行的值, 在其基础上计算得到当前行的值 int intNum; // 记录"杨辉三角"行数 /** * 入口参数: "杨辉三角"行数 说明: 类变量初始化过程 */ YangHui2(int intNum) // 构造函数 { arr1 = new BigInteger[intNum]; // "杨辉三角"一行最多有N个值,根据需要定义数组大小 this.intNum = intNum; // 记录"杨辉三角"行数 arr1[0] = BigInteger.valueOf(1); // 第一个元素为1 for (int i = 1; i < arr1.length; i++) // 对象数组初始化过程 { arr1[i] = BigInteger.valueOf(0); } } void printYangHui() // 计算并打印"杨辉三角" { BigInteger longTmp; // 定义变量记录当前元素值 BigInteger longTmp2; // 定义变量记录前一元素值 // 说明: 保存当前元素值用于下次计算 for (int i = 1; i <= intNum; i++) // 进入循环,开始计算打印"杨辉三角" { longTmp2 = BigInteger.valueOf(0); // 进入新行计算时清空前一元素值, 在本行计算中会赋新值 for (int j = 0; j < i; j++) { longTmp = arr1[j]; // 记录当前元素的初始值 arr1[j] = longTmp2.add(arr1[j]); // 当前元素的值为前一元素(longTmp2)与当前元素的和 longTmp2 = longTmp; // 当前元素初始值作为下一计算的前一元素运用 System.out.print(arr1[j] + "\t"); // 打印 } System.out.println(); // 换行 } }} 文章出处:DIY部落( http://www.diybl.com/course/4_webprogram/jsp/jsp_js/20090304/157838.html)