多种写法多种思路,重在参考,莫要争辩!
s #include#include using namespace std; void triangle(){ //定义一个二维动态数组 int n;//定义层数 cout<<"你想得到几层的杨辉三角形:"; cin>>n; while(n<=0){ cout<<"输入错误,请重新输入!"< >n; } int **a;//定义二维指针 a = (int**)calloc(n,sizeof(int*));//申请一组一维指针空间 int i;//循环通用变量 for(i = 0; i =2){ a[0][0] = 1; a[1][0] = 1; a[1][1] = 1; }else{ a[0][0] = 1; } //以上一层的数为基础,推导出下一层的数 for(int x = 3; x<=n; ++x){//前两层已经定义,故从第三层开始 //定义每层开始和末尾两个数字1 a[x-1][0] = 1;//x-1为数组下标从0开始,第三行实则为2,故-1 a[x-1][x-1] = 1; //定义除始末的中间值 // 1 // 1 1 // 1 2 1 //1 3 3 1 //定义y,实际含义为记录下标 for(int y = 1 ; y<=x-2; ++y){//x-2为中间值数量,除去始末故-2 a[x-1][y] = a[x-2][y-1] + a[x-2][y];//中间值下标从1开始,为上一层同下标的值和-1下标值的和,x-1为此层,x-2为上一层 } } //左侧输出遍历 //for(i = 0; i h #include#include using namespace std; int main(){ int n;//层数 cout<<"需要输入多少层:"; cin>>n; int x=n+1; int arr[100][100]; for(int i=0;i 1 2021年10月23日16:43:39
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)