日常练习题

【问题描述】

爱丽丝要完成一项修剪灌木的工作。 有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌 木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开 始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。 灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。在第一天的 早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

【分析】

需要用到循环,并且需要记录天数,如果使用 day%N 来确定修建那颗的话,不合理 想不出来就用比较笨的办法 day++ day-- ,由题干可以知道 经过 3*N 天可以知道N棵树的最高长度,所以,循环3*N 次

【代码】

int max(int a,int b){
	if (a>=b){
		return a;
	}
	else {
		return b;
	}
}
while(a < 3*N)
	{
		for (int i=0;i<N;i++)
		{
			n[i]++;
		}
		MAX[day] = max(MAX[day],n[day]);
		n[day] = 0;
		if (a<N-1) day++;
		else if (a<2*(N-1)) day--;
		else if (a<3*(N-1)) day++;
		a++;
	}

【思考】

对于问题的思考分析还是太片面,不能找出更好的解决办法,还是得多看看代码,扩展自己的思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值