看了很多大佬的杨辉三角的输出方法,大多都是用二维数组,极少有人不用数组输出的,废话少说上代码:
#include<stdio.h>
int main()
{
void div(int );
int n;
while((scanf("%d", &n)) != 0 && n != 0)
{
div(n);
printf("\n");
}
return 0;
}
void div(int n)
{
int ytu(int n);
int m, h, a, b, k, sum;
for(m=1;m<=n;m++)
{
b = m-1;
for(k=1,a=1,sum=1;k<=m;k++)
{
if(k == 1)
printf("1");
else if(k == m)
printf(" 1");
else
{
a *= b; //我使用的数学公式为从本行第二个数起至倒数第二个数
b--; //第n行第2个数为(n-1)/1! ,第n行第3个数为(n-1)*(n-2)/2!
sum *= k-1; //以此类推
a /= sum,sum = 1;
printf(" %d", a/sum);
}
}
printf("\n");
}
return ;
}
(新手勿喷,谢谢合作)