1
有一个变化规律是,0后 - > 01,1 - > 10。例如,在改变之后,10是1001查找第K位数n变更
假定输入为0,后n这种规则的变化,什么是K数字?
我只能拿出残酷的解决方案,如下所示。但是我相信有更好的解决方案,任何人都可以提出一些新的想法吗?
public char lalala(int n, int k) {
String str = "0";
for (int i = 0; i < n; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < str.length; j++) {
if (str.charAt(j) == '0') {
sb.append("01");
} else {
sb.append("10");
}
}
str = sb.toString();
}
return str.charAt(k);
}
你在执行什么规则? – 2014-09-20 00:31:11
对不起,忘了添加它。有一个变化的规则,0 - > 01,1 - > 10。例如,更改后,10是1001. – laviier 2014-09-20 00:37:44
您的程序不正确:(1)程序中第k个数字是(k-1) -th。 (2)使用StringBuilder在你的方式追加字符是不正确的,使用替换。 – 2014-09-20 00:49:41