题目描述
题目分析
数学思维题。首先容易看出从左往右树的最大高度是对称的,不妨只看前棵树,由于此时右边的灌木数量不少于左边灌木数量,所以要想长到最高一定是修剪到最右边再剪回来,设该树右边共有棵树,那么它能长到最高的高度为。
我的代码
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
const int max_n = 10000;
int tree[max_n];
int main() {
int n;
cin >> n;
int half = n / 2;
for (int i = 1; i <= half + n % 2; i++)
{
tree[i] = (n - i) * 2;
cout << tree[i] << endl;
}
for (int i = half; i >= 1; i--)
{
cout << tree[i] << endl;
}
return 0;
}