1,10,100,1000…组成序列1101001000…,求这个序列的第N位是0还是1。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
Output
共T行,如果该位是0,输出0,如果该位是1,输出1。
Input示例
3
1
2
3
Output示例
1
1
0
#include"cstdio"
#include"cstring"
#include"cmath"
using namespace std;
int main()
{
int n;
int i, j, k;
scanf("%d",&n);
int num;
for(i=0;i<n;i++)
{
scanf("%d",&num);
int qwe=sqrt(2*(num-1)*1.0+0.5);
if(qwe*(qwe+1)==2*(num-1))
printf("1\n");
else printf("0\n");
}
return 0;
}
我想把刚接触到的打表用上,但是这个表要好长呀。所以,直接找到这个公式就可以了,三角数嘛。就这。