输出:
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
代码:
void printArr(int* arr, int n){
for(int i=1;i<n;i++){
if(arr[i]==0){
cout<<" ";
}else{
cout<<arr[i];
}
}
cout<<endl;
}
int main()
{
int max = 5; //可以为10以下的数, 10以上可以自己试一下,^-^
int len = max + max -1 ; //要存储的数目,是奇数
int mid = len/2 + 1; //5
for(int i=1;i<=max;i++){
if(i%2==0){
//计算出位置
int *line = new int[len+1](); //多申请一个, 在[1:len] 上操作, 避免差一错误
for(int j=0;j<i/2;j++){ //两边铺开
line[mid+1+j*2] = i;
line[mid-1-j*2] = i;
}
printArr(line,len+1);
delete[] line;
}else{
//计算出位置
int *line = new int[len+1]();
line[mid] = i; //先填中间
for(int j=1;j<=i/2;j++){ //两边铺开 j的范围尽量要方便操作
line[mid+j*2] = i;
line[mid-j*2] = i;
}
printArr(line,len+1);
delete[] line;
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。