小宝定义了一个递归函数F(x),x为正整数且定义域范围x∈[1,1018]xin [1,10^{18}]x∈[1,1018] F(x)={1(x=1)F(x+1)+1(x≠1andx%2=1)F(x/2)+1(x%2=0)F(x)=left{begin{matrix}1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
小宝定义了一个递归函数F(x),x为正整数且定义域范围x∈[1,1018]xin [1,10^{18}]x∈[1,1018] F(x)={1 (x=1)F(x+1)+1 (x≠1 and x%2=1)F(x/2)+1 (x%2=0)F(x)=left{begin{matrix}1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; (x=1)\ F(x+1)+1; ; ; (xneq 1; ; and; ; x%2=1)\ F(x/2)+1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; (x%2=0)end{matrix}right.F(x)=⎩⎨⎧1(x=1)F(x+1)+1(x=1andx%2=1)F(x/2)+1(x%2=0) 现在小宝想要你编写一个程序实现这个函数的反函数功能,也就是说我们输入一个正整数y(y∈[1,109]yin [1,10^{9}]y∈[1,109]),你要找到范围在[1,1018][1,10^{18}][1,1018]内的正整数x,使得F(x)=y。 如果在[1,1018][1,10^{18}][1,1018]内不存在任何一个正整数x使得F(x)=y。请输出"-1"(不含引号)代表无解,如果有多个满足条件的x,你只用随便输出一个大小在[1,1018][1,10^{18}][1,1018]内的合法解即可