基准时间限制:1 秒 空间限制:131072
KB 分值: 5
难度:1级算法题
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示例
3123
Output示例
110
这题先预处理10^9范围内1的位置的位置,简单递推便可得到。。。。然后接下来的就很简单了
#include<stdio.h>
#include<string.h>
int f[50004];
int main()
{
f[0]=1;
for(int i=1;i<=50000;i++)
f[i]=f[i-1]+i;
int t,n;
scanf("%d",&t);
{
scanf("%d",&n);
int flag=0;
for(int i=0;i<=50000;i++)
{
if(n==f[i])
{
flag=1;
break;
}
}
if(flag==0)
printf("0
");
else
printf("1
");
}
return 0;
}