爱丽丝要完成一项修剪灌木的工作。
有 N 棵灌木整齐的从左到右排成一排。
爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。
爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。
当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。
直到修剪了最左的灌木后再次调转方向。
然后如此循环往复。
灌木每天从早上到傍晚会长高 1 厘米,而其余时间不会长高。
在第一天的早晨,所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。
输入格式
一个正整数 N,含义如题面所述。
输出格式
输出 N行,每行一个整数,第行表示从左到右第 i 棵树最高能长到多高。
数据范围
对于 30%的数据,N≤10,
对于 100% 的数据,1
3
输出样例:
4
2
4
假设她裁完当前这棵树i
后,高度为0
。
距离她折返回来裁这颗树的距离说明了这颗树能长高多长厘米。
统计距离她下次折返回来剪该树的距离或者经过的天数即可
从当前的i
向右走到n
:走的距离为n-i
再从n
折返向左走到i
:走的距离也为n-i
总共是:2*(n-i)
从当前的i
向左走到1
:走的距离为i-1
再从1
折返向右走到i
: 走的距离也为i-1
总共是2*(i-1)
由于她会来回走,所以两种情况取一个Max即可。
import java.util.*;
public class Main{
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=1;i<=n;i++){
System.out.println(Math.max(i-1,n-i)*2);
}
}
}