软件介绍网站模板,h5页面怎么做,南宁小程序定制开发,修改wordpress logo问题描述 爱丽丝要完成一项修建灌木的工作。有N棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木#xff0c;让灌木的高度变为0厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始#xff0c;每天向右修剪一棵灌木。当修剪了最右侧的灌木后#xff0c;它会调转方…问题描述 爱丽丝要完成一项修建灌木的工作。有N棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木让灌木的高度变为0厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始每天向右修剪一棵灌木。当修剪了最右侧的灌木后它会调转方向下一天开始向左修剪灌木直到修剪了最左的灌木后再次调转方向。然后如此循环往复。 灌木每天从早上到傍晚会长高1厘米而其余时间不会长高。在第一天的早晨所有灌木的高度都是0cm。爱丽丝想知道每颗灌木最高长到多高。
输入格式 一个正整数N含义如面所述
输出格式
输出N行每行一个整数第 i 行表示从左到右第 i 棵树最高能长到多高
样例输入
3
样例输出
4
2
4
#include iostream
using namespace std;
/*
假设点i刚被修剪完为0然后会向右/向左跑一趟端点会被遍历1次i与端点间的点会被遍历两次
而重新修剪i的当天早上因为是傍晚修剪所以当天也会被算上达到最大高度然后置零
也就是说最大长度中间节点数*21端点1自生max(左边/右边节点数)*2
左边端点数i-1
右边端点数n-i
*/
int main()
{int n;cinn;for(int i 1;in;i) coutmax(i-1,n-i)*2endl;return 0;
}
#includestdio.h
#includestdlib.h
#includemath.h
int main()
{int i,n,num;int max[10000]{};int left,right;scanf(%d,n);sumn-1;for(i0;isum;i){lefti;rightsum-i;if(leftright){max[i]2*right;printf(%d\n,max[i]);}else if(leftright){max[i]2*left;printf(%d\n,max[i]);}}return 0;
}