网站建设技术交流qq,抖音代运营合作方案,如何创建网站步骤,wordpress 用户权限管理常见算法-巴斯卡三角形#xff08;Pascal#xff09;
1、说明
巴斯卡#xff08;Pascal#xff09;三角形基本上就是在解 nCr#xff0c;因为三角形上的每一个数字各对应一个nCr#xff0c;其中 n 为 row#xff0c;而 r 为 column#xff0c;如下#xff1a; 0C0 1…常见算法-巴斯卡三角形Pascal
1、说明
巴斯卡Pascal三角形基本上就是在解 nCr因为三角形上的每一个数字各对应一个nCr其中 n 为 row而 r 为 column如下 0C0 1C0 1C1 2C0 2C1 2C2 3C0 3C1 3C2 3C3
对应的数据如下图所示 1 1 1 1 2 1 1 3 3 1
巴斯卡三角形中的 nCr 可以使用以下这个公式来计算以避免阶乘运算时的数值溢位 nCr [(n-r1)/r] * nCr-1 nC0 1 2、C代码
#includeiostream
using namespace std;long Pascal(int n, int r) {long p 1;for (int i 1; i r; i) {p p * (n - i 1) / i;}return p;
}void PrintPascal(int t) {int n, r;for (n 0; n t; n) {for (r 0; r n; r) {int i;if (r 0) {for (i 0; i (t - n); i) {cout ;}}else {cout ;}cout Pascal(n, r);}cout endl;}
}int main() {PrintPascal(12);// n0, r0 1 || 0c0// n1, r0 1 1 || 1c0 1c1// r1// n2, r0 1 2 1 || 2c0 2c1 2c2// r1// r2// n3, r0 1 3 3 1 || 3c0 3c1 3c2 3c3// r1// r2// r3return 0;
}