小慕在分析一个二进制数时,定义了一种特殊的距离:相邻两个1之间0的个数称为它们之间的距离。例如,二进制数1001011中,从左到右相邻两个1之间的距离分别是2、1、0。 现在,如果一个整数转换成二进制数后满足以下两个条件: 1. 二进制表示中至少包含3个1 2. 所有相邻的1之间的距离都相等 小慕就把这个数称为“数”。例如,21(二进制为10101)、60(二进制为111100)、146(二进制为10010010)都是等距二进制数。
提示:带虚线的词点一下有通俗解释。
输入描述
现给定一个输入,整数0 <= n < (2^31-1)
输出描述
如果 n 是等距二进制,请输出它的距离,如果不是等距二进制,请输出 -1
示例
示例 1
输入
21
输出
1
说明:二进制为 10101,距离为 1
示例 2
输入
60
输出
0
说明:二进制为 111100,距离为 0
示例 3
输入
146
输出
2
说明:二进制为 10010010,距离为 2
示例 4
输入
2
输出
-1
说明:二进制为 10,不满足条件 1 ,非等距二进制
时间限制 1000 ms · 内存限制 128 MB