题目描述
虽然人们常说大学的数学很难懂,但杨八方的数学老师很善于活跃气氛。
老师上课前时常会出一些简单有趣的数学题来给同学们启发思维,这天老师提出了这样一个问题:
给出一个方程:|x|+2|y|=k|x|+2|y|=k,对于给定整数kk,有多少对整数(x,y)(x,y)能使方程成立。
输入
第一行是一个整数TT,代表有TT组测试数据。
下面TT行,每一行有一个整数kk。
0 < T < 10000 < T < 1000
−109 < k < 109−109 < k < 109
输出
输出能使方程成立的(x,y)(x,y)的对数。
样例输入
1
3
样例输出
6
提示
对于样例,共6对满足:(-3,0)、(-1,-1)、(-1,1)、(1,-1)、(1,1)、(3,0)。
#include<cstdio>
#include<cmath>
#include<cstring>
main()
{
int t;
scanf("%d",&t);
while(t--)
{
int k;
scanf("%d",&k);
if(k==0)
{
printf("1\n");
}
else if(k<0)
{
printf("0\n");
}
else
{
int a,b,i,num;
if(k%2==0)
{
num=(k/2-1)*4+4;
}
else
{
b=(k-1)/2;
num=4*b+2;
}
printf("%d\n",num);
}
}
return 0;
}