15
切换一些位并得到一个正方形
给定一个整数,您必须找到将N反转为平方数所需的最小位数。只允许将最高有效位以下的位取反。N>3N>3N>3NNN 例子 已经是一个平方数( 2 2),因此预期输出为 0。N=4N=4N=422222^2000 可通过将1位取反来变成一个平方数: 11000 → 1100 1( 25 = 5 2),因此预期输出为 1。N=24N=24N=2411000→1100111000→1100111000 \rightarrow 1100\color{red}125=5225=5225=5^2111 通过反转的单个位不能被转变成平方数(可能的结果是 23, 20, 18和 30),但它可以通过反转2位来实现: 10110 → 10 0 0 0( 16 = 4 2) ,因此预期输出为 2。N=22N=22N=2223232320202018181830303010110→1000010110→1000010110 \rightarrow 10\color{red}0\color{red}0016=4216=4216=4^2222 规则 如果您的代码太慢或在较大的测试用例中引发错误,也可以,但是它应该至少在不到1分钟的时间内支持。3<N<100003<N<100003 < N < 10000 这是代码高尔夫球! 测试用例 Input | Output ----------+-------- 4 …