考虑由两个字母A和B构成的词所组成的这样一个序列:序列中的第一个词是“A”,第k个词是由第k-1个词经过下面的变换得到:每个A替换为AAB,以及每个B替换为A。容易看出每个词是它的下一个词的起始部分,这些词的起始部分相当于给出了一个字母序列AABAABAAABAABAAB……。问你第n个字母A在哪一个位置出现?
Input
N (1<=N<=1000000)
Output
位置序号。
Sample Input
1000
Sample Output
1414
#include<bits/stdc++.h>
using namespace std;
double n;
int main()
{
while(scanf("%lf",&n)!=EOF)
{
printf("%lld\n",(long long)(n*sqrt(2)));
}
return 0;
}