問(wèn)題 1833: [藍(lán)橋杯][2015年第六屆真題]奇怪的數(shù)列
題目描述
從X星截獲一份電碼,是一些數(shù)字,如下:
13
1113
3113
132113
1113122113
....
YY博士經(jīng)徹夜研究,發(fā)現(xiàn)了規(guī)律:
第一行的數(shù)字隨便是什么,以后每一行都是對(duì)上一行“讀出來(lái)”
比如第2行,是對(duì)第1行的描述,意思是:1個(gè)1,1個(gè)3,所以是:1113
第3行,意思是:3個(gè)1,1個(gè)3,所以是:3113
請(qǐng)你編寫一個(gè)程序,可以從初始數(shù)字開始,連續(xù)進(jìn)行這樣的變換。
輸入
第一行輸入一個(gè)數(shù)字組成的串,不超過(guò)100位
第二行,一個(gè)數(shù)字n,表示需要你連續(xù)變換多少次,n不超過(guò)20
輸出一個(gè)串,表示最后一次變換完的結(jié)果。
輸出
輸出一個(gè)串,表示最后一次變換完的結(jié)果。
樣例輸入
5
7
樣例輸出
13211321322115
package 字符串;
import java.util.Scanner;
/**
* Created with IntelliJ IDEA.
* User: 76147
* Date: 2020-01-29
* Time: 17:29
* Description:
*/
public class 奇怪的數(shù)列 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.next();
int n = sc.nextInt();
int q = 0;
for (int i = 0; i < n; i++) {
int num = 1;
String temp = "";
for (int j = 0; j < str.length(); j++) {
if (str.length() == 1) {
temp = 1 + str;
} else {
if (j + 1 < str.length() && str.charAt(j) == str.charAt(j + 1)) {
num++;
continue;
}
temp += num + "" + (str.charAt(j) - '0');
num = 1;
}
}
str = temp;
}
System.out.println(str);
}
}
}