#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
第n行:第一个值是1,第二个值1*(n-1)/1,第三个值1*(n-1)*(n-2)/2
第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推
*/
void YangHui0(const int n)
{
int tmp = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
if (j == 1)//第一个特殊处理,其他的用公式
{
tmp = 1;
}
else//公式第n行:第一个值是1,第二个值1*(n-1)/1,第三个值1*(n-1)*(n-2)/2,第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推
{
tmp = tmp * (i - (j - 1)) / (j - 1);//1 3 3 1
}
printf("%-5d", tmp);
}
printf("\n");
}
}
int main()
{
YangHui0(5);
return 0;
}
结果如下所示: