C语言与杨辉三角形问题,语句解释?

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:13:20
main()
{
int i,m,n,c;
clrscr();
for (m=0;m<=9;m++)
{
c=1;
printf("%d",c);
for (n=1;n<=m;n++)
{
c=c*(m-n+1)/n; (解释这一句在本程序中的作用,主要阐述算法思想)
printf("%6d",c);
}
printf("\n");
}

其实杨辉三角形里面的数字就是组合数。
这句话就是C(n-1,m)和C(n,m)之间的关系,可以直接由组合数公式C(n,m)=m!/[n!(m-n)!]得到。
最后注意,因为是整数运算,所以一定要先乘后除。

这个是我写的:

#include "stdio.h"
main()
{
int a[11][11];
int j,i;
for(j=0;j<10;j++)
{
a[j][0]=1;
a[j][j]=1;
for(i=1;i<j;i++)
a[j][i]=a[j-1][i-1]+a[j-1][i];//杨辉三角输出规律
for(i=0;i<=j;i++)
printf("%4d ",a[j][i]);
printf("\n");
}
}