京东网站建设哪家好,粉丝社区网站怎么做,火山软件开发平台官网,西安有什么好玩的游乐园题干#xff1a;
1,10,100,1000...组成序列1101001000...#xff0c;求这个序列的第N位是0还是1。
Input
第1行#xff1a;一个数T#xff0c;表示后面用作输入测试的数的数量。#xff08;1 T 10000) 第2 - T 1行#xff1a;每行1个数N。#xff08;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。
Sample Input
3
1
2
3
Sample Output
1
1
0
解题报告 用了map刚开始直接冲一下50W的数组发现1e8多然后开了70W发现成了1e7.。。于是发现可能是开大了然后试了试5W发现就1e9多了。
AC代码
#includebits/stdc.husing namespace std;
int a[50000 5];
mapint , int mp;
int main()
{int top -1;a[0] 1;mp[a[0] ] 1; for(int i 1 ;i50000 a[i](int)1e9; i) {a[i] a[i-1]i;mp[a[i] ] 1;}int t,n;
// couta[50000];cint;while(t--) {scanf(%d,n);printf(%d\n,mp[n]);} return 0 ;}
这题数据出水了啊不用map也能过因为最大数据是1e8.。。看代码
#includebits/stdc.husing namespace std;
int a[50000 5];
mapint , int mp;
int main()
{int top -1;a[0] 1;mp[a[0] ] 1; for(int i 1 ;i50000 a[i](int)1e9; i) {a[i] a[i-1]i;mp[a[i] ] 1;}int t,n;
// couta[50000];cint;while(t--) {scanf(%d,n);if(n 100001010) printf(hahaha\n);printf(%d\n,mp[n]);} return 0 ;}