将二项式(a + b)^ i展开,其系数构成杨辉三角形

    二项式系数值(杨辉三角) - 图1

    1. 杨辉三角除第一行外,每一行的值是上一行相邻的两个数相加
    2. 左右的边上都是 1 ,可以看做0 + 1(在最外层加上一个0)
    1. #include<queue>
    2. #include<iostream>
    3. using namespace std;
    4. void Yang(int n)
    5. {
    6. int count = n;//计数器
    7. int L = 0, R = 0;//左右模拟的0值
    8. int first = 1;//第一行的第一个数
    9. int second = 1;//第一行的第二个数
    10. int value = 0;//计算需要插入队列的值
    11. queue<int> s;//s队列
    12. s.push(first); // 1
    13. s.push(second); // 1 1
    14. // 行数>1
    15. while (count > 1)//循环插入队列
    16. {
    17. s.push(R); // 在上一行末尾放一个0,便于操作
    18. s.push(1); // 该行从1开始,把1放入
    19. while (s.front() != 0) //扫描到0,走到最右边了,该行结束
    20. { //两个两个相加,并加入队列
    21. value = s.front();
    22. s.pop();
    23. value += s.front();
    24. s.push(value);
    25. }
    26. s.pop(); //把最右边的标识符0,删除
    27. count--;
    28. }
    29. for (int i = 0; i <= n; i++)//循环输出
    30. {
    31. cout << s.front() << " ";
    32. s.pop();
    33. }
    34. }
    35. int main()
    36. {
    37. Yang(5);
    38. return 0;
    39. }