1087 1 10 100 1000

1087 1 10 100 1000

题目来源: Ural 1209

基准时间限制: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示例

3
1
2
3

Output示例

1
1
0

我只是将其存到了一个set里面,看到其他有更快的做法,但我只想用自己的方法.
 1 #include <bits/stdc++.h>
 2 #define N 1000000000
 3 using namespace std;
 4 set<int> s;
 5 int init(){
 6   s.insert(1);
 7   int ans=1;
 8   for(int i=1;ans+i<=1000000000;i++){
 9     s.insert(ans+i);
10     ans+=i;
11   }
12 }
13 int main(){
14   int n;
15   scanf("%d",&n);
16   init();
17   while(n--){
18     int m;
19     scanf("%d",&m);
20     if(s.count(m))
21       printf("1\n");
22     else
23       printf("0\n");
24   }
25   return 0;
26 }
时间: 2024-10-22 10:25:50

1087 1 10 100 1000的相关文章

1087 1 10 100 1000(打表 set 数学)

1087 1 10 100 1000 题目来源: Ural 1209 基准时间限制: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,如果

51nod 1087 1 10 100 1000(数学问题)

题目意思: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1087 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. I

[2016-05-11][51nod][1087 1 10 100 1000]

时间:2016-05-11 14:03:56 星期三 题目编号:[2016-05-11][51nod][1087 1 10 100 1000] 题目大意:1,10,100,1000-组成序列1101001000-,求这个序列的第N位是0还是1. 分析:第(k+1)×k2+1=n(k+1)×k2+1=n的时候,n位置的数字为1 #include<stdio.h> #include<math.h> using namespace std; int main(){ int t; scan

[51nod] 1087 1 10 100 1000

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 一开始的做法是先对1的位数进行打表,然后进行二分 #include <iostr

51nod 1087 1 10 100 1000[打表]

题目来源: Ural 1209 基准时间限制: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示例 3

51Nod 1087 1 10 100 1000 | 数学

Input示例 3 1 2 3 Output示例 1 1 0 #include "bits/stdc++.h" using namespace std; #define LL long long #define INF 0x3f3f3f3f3f #define PI acos(-1) #define N 510 #define MOD 10 using namespace std; int main() { int n,t,m; scanf("%d",&t)

马化腾:用户体验的10/100/1000法则

在研究用户需求上没有什么捷径可以走,不要以为自己可以想当然地猜测用户习惯 产品研发中心最容易犯的一个错误是:研发者往往对自己挖空心思创造出来的产品像对孩子一样珍惜,呵护,认为这是他的心血结晶.好的产品是有灵魂的,优美的设计.技术.运营都能体现背后的理念. 有时候开发者设计产品时总觉得越厉害越好,但好产品其实不需要所谓特别厉害的设计或者什么,因为觉得自己特别厉害的人就会故意搞一些体现自己厉害,但用户不需要的东西,那就是舍本逐末了. 腾讯也曾经在这上面走过弯路.现在很受好评的QQ邮箱,以前市场根本不

ural 1209. 1,10,100,1000.....

z 好像就是解这个方程: a[i]表示在序列中的位置,如果有正整数解,则是1,否则是0 变形的 1 #include <iostream> 2 #include <cmath> 3 #include <cstdio> 4 using namespace std; 5 6 const int N=65535; 7 long long a[N]; 8 9 int main(){ 10 long long n; 11 cin>>n; 12 for(int i=0;

从10万到1000万:如何让App的用户数快速增长

简要:本文为移动互联网李建华在<人人都是产品经理>微信群做的一次经验分享,文章主要写的是当你的用户数已经有10万或者几十万的时候,如何通过一些高端的战略和战术的方法,让你的App用户数增长至千万甚至上亿,文章所写内容根据作者自身的实战推广经验而成,不具有绝对性,可以为一些做App推广的朋友提供参考和借鉴. 一.知己:如何对自己.对市场进行分析,有10万的用户,已经算是完成了一个从0到1的过程,现在市场和自己的产品都会有变化,这个时候,该如何对自己分析? 老是写干货,快写光了,没有办法我是个实在