c++程序设计 01串的位置
来源:百度知道 编辑:UC知道 时间:2024/05/10 12:25:52
01串的位置
基本描述
有一个无穷数列,其通项表示为:a(k)=10^k,k=0,1,2,3,…构成了数列1,10,100,1000,…,把它们连起来,就成了数串1101001000100001…。
问题是如何知道这数串的第i位是0还是1?有数学天才的人可能思考起来容易一些,但是不要忘记了,现在是编程,既要正确,还要满足性能。
输入描述
输入一些整数,每个整数n(0表示数串的位置。
输出描述
对于每个n,输出该数串第n位上的值,即1或0。每个1或者0占一行。
样本输入
4 3 14 7 6
样本输出
1
0
0
1
0
基本描述
有一个无穷数列,其通项表示为:a(k)=10^k,k=0,1,2,3,…构成了数列1,10,100,1000,…,把它们连起来,就成了数串1101001000100001…。
问题是如何知道这数串的第i位是0还是1?有数学天才的人可能思考起来容易一些,但是不要忘记了,现在是编程,既要正确,还要满足性能。
输入描述
输入一些整数,每个整数n(0表示数串的位置。
输出描述
对于每个n,输出该数串第n位上的值,即1或0。每个1或者0占一行。
样本输入
4 3 14 7 6
样本输出
1
0
0
1
0
每个数列的长度为1,2,3,4,5...
求和得1,3,6,10,15...
如果n等于0+1(特殊情况),1+1,3+1,6+1,10+1,15+1...时,值为1
否则为0
通式为求
x*(1+x)/2+1=n (相当于求二次方程的根)
如果x为整数即输出1
否则输出0