签到题:主要是找规律
当n为奇数时,只有一种情况
ans=k*(k+1)
当n为偶数时,就有两种情况
ans=(k-2)*(k+2)-------n%2==0&&n%4!=0
ans=(k-1)*(k+1)-------n%2==0&&n%4==0
在这两种情况下要特判n==2的情况,其中k=n/2
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<climits>
#include<iomanip>
#include<cstring>
#define mod 1000000007
#define maxn 50000
using namespace std;
typedef long long lint;
int main()
{
//freopen("C:\\Users\\Administrator\\Desktop\\in.txt" , "r" , stdin);
lint n;
int t;
lint k;
cin>>t;
while(t--)
{
cin>>n;
k=(lint)n/2;
if(n%2==1)cout<<k*(k+1)<<endl;
else
{
if(n==2)cout<<1<<endl;
if(n%2==0&&n%4==0)cout<<(k+1)*(k-1)<<endl;
if(n%2==0&&n>2&&n%4!=0)cout<<(k+2)*(k-2)<<endl;
}
}
return 0;
}