求杨辉三角最简程序(C语言)

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:47:39
请加注释
注释呢?
*******************************************
下面是我找到的
long int digui(int n)
{long int z;
if (n==1) z=1;
else z=digui(n-1)*n;
return(z);
}
main()
{int n1,i,j,d=1;
printf("please input how many rows do you want!\n");
scanf("%d",&n1);
for (i=1;i<=n1;i++)
{for (j=1;j<=i;j++)
{if ((j==1)||(j==i)) printf("%-4d",d);
else printf("%-4ld",(digui(i-1)/(digui(j-1)*digui(i-j)))); }
printf("\n");
}
}
********************************************************
有比我给的程序在简单的吗?

#include <stdio.h>
#define N 10 /*定义层数*/
main()
{
int i,j;
int a[100][100]; /*定义一个大二维数组,存放数据*/

for(i=0;i<N;i++)a[i][0]=1; /*将第一列全部置0*/
for(i=0;i<N;i++)a[i][i]=1; /*将斜着的对角线全部置0*/
for(i=2;i<N;i++) /*从第三行开始*/
{
for(j=1;j<i;j++) /*对每一行上的第二个开始的数据进行计算操作*/
{
a[i][j]=a[i-1][j]+a[i-1][j-1]; /*每个数据等于它头上的和靠左边的两个数的和*/
}
}
printf("the 10 ceng yanghuisanjiao wei :\n");
for(i=0;i<N;i++) /*输出数据*/
{
for(j=0;j<=i;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
getch();
}

以前写过一个,调试可行,就是排列比较难看。

int tp(int x,int y) //此函数是求出三角形第x行第y列
{
int z;
if(y==0 || y==x)
return 1; //如果是第0行或是行数和列数相同,输出1。
z=tp(x-1,y-1)+tp(x-1,y); //否则就按杨辉三角公式来
return z;
}
void fun(int n) //此函数直接生成n行的杨辉三角。
{
int i,j;
for(i=0;i<n;i++)
{