这道题我的解法是让左半部分全为偶数,从2开始,每次加2,右半部分从1开始,每次加2,但是最后一个数要放到最后才能加
这是为了保证两个部分的和要一致
当然,也有输出为NO的情况,一般是n/2为奇数,这就得输出NO,其它都是YES
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int t=scanner.nextInt();
while(t-->0) {
int n=scanner.nextInt();
if(n/2%2==1) {
System.out.println("NO");
continue;
}
System.out.println("YES");
int s1=0;
ArrayList<Integer> list=new ArrayList<>();
for (int i = 2; i <= n; i+=2) {
list.add(i);
s1+=i;
}
for (int i = 1; i <= n-3; i+=2) {
list.add(i);
s1-=i;
}
list.add(s1);
for(Integer x:list) {
System.out.print(x+" ");
}
System.out.println();
}
}
}



京公网安备 11010502036488号