试题 基础练习 杨辉三角形

淺唱寂寞╮ 提交于 2020-02-27 15:33:57

总结

  • 使用 while 循环的时候,自加的边界不能忘了
  • memcpy(temp, priTemp, sizeof(priTemp)); 第三个参数是被复制的字节数。
  • 文档:https://www.runoob.com/cprogramming/c-function-memcpy.html

思路

  • 只需要下一层根据上一层输出就可以了
#include <iostream>
using namespace std;
int main() {
    int temp[35] = {0};
    int priTemp[35] = {0};
    temp[0] = 1;
    temp[1] = 2;
    temp[2] = 1;

    int n;
    scanf("%d", &n);
    if (n == 1) {
        printf("1");
    } else if (n == 2) {
        printf("1\n1 1");;

    } else {
        printf("1\n1 1\n1 2 1\n");
        for (int i = 3; i < n; ++i) {
            int j = 0;
            while (*(temp + j) != 0) {

                if (j - 1 < 0) {
                    priTemp[0] = 1;
                    j++;

                } else {
                    priTemp[j] = temp[j - 1] + *(temp + j);
                    j++;
                }
            }
            priTemp[j] = 1;
            int k = 0;
            while (*(priTemp + k) != 0) {
                cout << *(priTemp + k);
                if (*(priTemp + k + 1) != 0) {
                    cout << " ";
                }
                k++;
            }
            cout << endl;
            memcpy(temp, priTemp, sizeof(priTemp));
        }
    }

    return 0;
};
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!