简单题,发出来纪念一下,我一开始还用了高精度的额比经历。
一开始用int64没有把运算的两个数都定义成int64,后来测了个10^9就跪了,以为范围不够,以后谨记。
#include <iostream>
using namespace std;
int main()
{
int T,n,l,i,k;
__int64 ans,x,y;
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
if (n==2) printf("%d\n",1);
else
{
if (n%2==1)
{
x=n/2;
y=n/2+1;
}
else
{
if (n%4==0)
{
x=n/2+1;
y=n/2-1;
}
else
{
x=n/2+2;
y=n/2-2;
}
}
ans=x*y;
printf("%I64d\n",ans);
}
}
return 0;
}