题目来源: 第十三届蓝桥杯大赛软件赛省赛B组

爱丽丝要完成修建灌木的工作

NN 棵灌木整齐的从左向右排成一排, 爱丽丝在每天傍晚会修建一棵灌木, 让灌木的高度变为 0 厘米. 修建灌木的顺序是从最左侧的灌木开始, 每天向右修建一棵灌木. 当修建了最右侧的灌木之后, 她会调转方向, 下一天开始向左修剪灌木. 直到修剪了最左的灌木后再次调转方向. 然后如此循环往复

灌木每天从早到晚都会长高 1 厘米, 而其余时间不会长高. 在第一天的早晨, 所有灌木的高度都是 0 厘米. 爱丽丝想知道每棵灌木最高长到多高

输入 : 一个正整数NN , 含义如题面所述

输出 : 输出NN 行, 每行一个整数, 第ii 行表示从左到右第ii 棵灌木最高能长到多高

Input Sample :

3

Output Sample :

4
2
4

简单的模拟题, 手动模拟一下即可

当一次被剪之后, 下次被剪之前的高度就是最大高度了. 所以我们只需要根据这棵灌木更靠近左边 (1) 还是更靠近右边 (NN) 就能计算出最大高度

下面给出题解代码, 请注重思考, 不要无脑cv

#include <bits/stdc++.h>
using namespace std;
const int maxn = 55;

void io() {
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
}

int main() {
io();
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cout << max(n - i, i - 1) * 2 << '\n';
}
return 0;
}