在这里插入图片描述

这个b玩意儿耗了我2个小时,怎么tm就写不出来呢。

可能是吃的太饱了吧。

越写不出来一定要越冷静下来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
int num = hp.size;
int front = 0;
int back = 1;
int row = 1;

while (num)
{

for (int j = front; j < back; j++)
{
cout << hp.arr[j] << " ";
}
cout << endl;


num -= row;//输出完本行还剩的元素个数

//如果减去本行输出的个数小于0
if (num <= 0)
{
break;
}

row *= 2;//下一行要输出的元素个数

front = back;//定位下一行的起点

if (num - row <= 0)//如果当前的元素个数不够输出下一行的,直接定位下一行的back位置
{
back = hp.size;
}
else// 够则——手动定位结尾位置
{
back += row;
}
}

image-20211012192048031