這道題能夠將前 \(\frac{n}{2}\) 個數的和(即\(2,4,6,8,10...n\))存起來,最後令後\(\frac{n}{2}-1\)個數(即\(1,3,5,7,9...n-3\))的和減去前 \(\frac{n}{2}\) 個數的和,獲得第 \(n\) 個數的值。並且另外地,若是\(\frac{n}{2} \bmod 2=1\)直接輸出 NO 。ios
\(Code:\)spa
#include <iostream> using namespace std; int main() { int t; cin>>t; for(int i=1; i<=t; i++) { int n; cin>>n; if((n/2)%2==1) { //特判 cout<<"NO"<<endl; } else { int ans=0,aans=0; cout<<"YES"<<endl; for(int j=2; j<=n; j+=2) { //偶數 cout<<j<<' '; ans+=j; //累加 } for(int j=1; j<=n; j+=2) { if(n<=j+1) cout<<ans-aans<<endl; //第n個數的值 else { cout<<j<<' '; //奇數 aans+=j; } } } } }