计算阶乘的fac函数,可以当为0或为1时返回1,当是其他值时返回当前的数*fac(当前数-1)即可,代码如下:
参考链接:
#include <stdio.h>
// 计算num的阶乘
long fac(long num){
if (num==1||num==0){
return 1;
}else{
return num*fac(num-1);
}
}
int main(void){
long n;
printf("请输入杨辉三角要打印的行数n:");
scanf("%ld",&n);
// https://ask.csdn.net/questions/7455120?spm=1005.2025.3001.5141
long i,j,m;
for(i=0;i<=n-1;i++){
// 打印前面的空格
for(j=0;j<n-i-1;j++){
printf(" ");
}
// https://baike.baidu.com/item/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/215098?fr=aladdin
// 打印每一行的每一项
for(m=0;m<=i;m++){
printf("%ld ",fac(i)/fac(m)/fac(i-m));
}
printf("\n"); // 每行结尾的换行
}
return 0;
}