/* * 特殊序列,下一元素为上个元素的描述 * a[0] = 1 * a[1] = 11 代表a[0]由一个1组成 * a[2] = 21 代表a[1]由2个1组成 * a[3] = 1211 代表a[2]由1个2、1个1组成 * a[4] = 111221 代表a[3]由1个1、1个2、2个1组成 * 以此类推 * */
public class Main {
public static void main(String[] args) {
System.out.println(countAndSay(4));
}
public static String countAndSay(int n) {
if(n == 1) return "11";
String num = countAndSay(n - 1);
StringBuilder s = new StringBuilder();
for(int i=0; i<num.length(); i++) {
int count = 1;
while(i < num.length()-1 && num.charAt(i) == num.charAt(i+1)) {
count++;
i++;
}
s.append(count);
s.append(num.charAt(i));
}
return s.toString();
}
}