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

每个数列的长度为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