【2024.2.3练习】修剪灌木

题目描述

【2024.2.3练习】修剪灌木_第1张图片


题目分析

数学思维题。首先容易看出从左往右树的最大高度是对称的,不妨只看前\left \lceil N/2 \right \rceil棵树,由于此时右边的灌木数量不少于左边灌木数量,所以要想长到最高一定是修剪到最右边再剪回来,设该树右边共有x棵树,那么它能长到最高的高度为f(x)=2x


我的代码

#include 
#include 
#include 
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;
}

你可能感兴趣的:(练习日志,c++,学习)