利用公式为n!/i!/(n-i)!。
数据出错点为第19行最中间的最大值,第20行好像都没事。
#include <bits/stdc++.h>
using namespace std;
unsigned long long jie(int l);//阶乘
unsigned long long xie(int l, int r);//分子分母约分的阶乘
int main() {
int n = 0;
scanf("%d", &n);//输入
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
unsigned long long a = xie(i, max(j, i - j)), b = jie(min(i - j, j));//调用函数也注意尽量化简了
printf("%llu ", a / b);
}
printf("\n");
}
}
unsigned long long jie(int l) {
if (l == 0)
return 1;
else {
int q = 1;
for (int i = 1; i <= l; i++) {
q *= i;
}
return q;
}
}
unsigned long long xie(int l, int r) {
if (l == 0 && r == 0)
return 1;
else {
int q = 1;
for (int i = r + 1; i <= l; i++) {
q *= i;
}
return q;
}
}