[北京大学计算机考研复试题解]skew binary
原题
在skew binary 表示中,数x的第k位的值x[k]表示x[k]*(2^(k+1)-1).每个位上的可能数字是0或1,最后面一个非零位可以使2,例如10120(skew)=1*(2^(4+1)-1)+0*(2^(3+1)-1)+1*(2^(2+1)-1)+2*(2^(1+1)-1)+0*(2^(0+1)-1).前十个skew数为0、1、2、10、11、12、20、100、101以及102.
要求:
输入包含一行或多行,每行包含一个整数n,若n=0,则输入结束,否则其为skew数,输出对应的十进制值
变体
在skew binary 表示中,数x的第k位的值x[k]表示x[k]*(2^(k+1)-1).每个位上的可能数字是0或1,最后面一个非零位可以使2,例如10120(skew)=1*(2^(4+1)-1)+0*(2^(3+1)-1)+1*(2^(2+1)-1)+2*(2^(1+1)-1)+0*(2^(0+1)-1).前十个skew数为0、1、2、10、11、12、20、100、101以及102.
要求:
输入包含一行或多行,每行包含一个十进制整数n,若n=0,则输入结束,否则输出对应的skew表示