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