杨辉三角形(pascal triangle),winxp+dev_c++4环境下实现:
1:利用公式函数化实现:
#include
<
stdio.h
>
#define
M 10
int
factor(
int
m)

...
{
int mult=1,i;
for(i=1;i<=m;++i)
mult*=i;
return mult;
}
//
计算阶乘;
int
pascal(
int
m,
int
n)

...
{
return factor(m)/(factor(n)*factor(m-n));
}
//
利用公式计算每一个位置上元素的值;
int
main(
void
)

...
{
int i,j;
for(i=0;i<M;++i)

...{
for(j=0;j<i+1;++j)
printf("%d ",pascal(i,j));
putchar(' ');
}
system("pause");
return 0;
}
//
funtion way
2:利用二维数组实现:
#define
M 10
#include
<
stdio.h
>
int
main()

...
{ int pascal[M][M];
int i,j;
printf("1 ");
printf("1 1 ");
pascal[0][0]=1;
pascal[0][1]=1;
for(i=1;i<M-1;++i)//注意将运算后得到的值存储以便下次运算使用;

...{ pascal[i][0]=1;
printf("%d ",pascal[i][0]); //the 1st num 1
for(j=1;j<i+1;++j)

...{
pascal[i][j]=pascal[i-1][j-1]+pascal[i-1][j];//计算中间里面的值;
printf("%d ",pascal[i][j]);
}
pascal[i][j]=1;
printf("%d ",pascal[i][j]); //the last num 1;
}
system("PAUSE");
return 0;
}
比较而言,下面一种方法更简洁,函数化实现需要很多次调用函数和多次循环计算。
1:利用公式函数化实现:































2:利用二维数组实现:

























