题目来源: 第十三届蓝桥杯大赛软件赛省赛B组
爱丽丝要完成修建灌木的工作
有 N N N 棵灌木整齐的从左向右排成一排, 爱丽丝在每天傍晚会修建一棵灌木, 让灌木的高度变为 0 厘米. 修建灌木的顺序是从最左侧的灌木开始, 每天向右修建一棵灌木. 当修建了最右侧的灌木之后, 她会调转方向, 下一天开始向左修剪灌木. 直到修剪了最左的灌木后再次调转方向. 然后如此循环往复
灌木每天从早到晚都会长高 1 厘米, 而其余时间不会长高. 在第一天的早晨, 所有灌木的高度都是 0 厘米. 爱丽丝想知道每棵灌木最高长到多高
输入 : 一个正整数 N N N , 含义如题面所述
输出 : 输出 N N N 行, 每行一个整数, 第 i i i 行表示从左到右第 i i i 棵灌木最高能长到多高
Input Sample :
3
Output Sample :
4 2 4
简单的模拟题, 手动模拟一下即可
当一次被剪之后, 下次被剪之前的高度就是最大高度了. 所以我们只需要根据这棵灌木更靠近左边 (1) 还是更靠近右边 ( N N N) 就能计算出最大高度
下面给出题解代码, 请注重思考, 不要无脑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;
}