用java编程实现:从 X 星截获一份电码,是如下一些数字串: 13、1113、3113、132113、1113122113、. YY 博士经彻夜研究,发现了规律: 第1个数随便是什么,以后每个数都是对上一个数"读出来"。 比如第2个数是对第1个数的描述,意思是:1个1,1个3,所以是:1113。第3个数意思是:3个1,1个3,所以是:3113。 请编写一个程序,可以从初始数字开始,连续进行这样的变换。 输入数据时,第一行输入一个数字组成的串,不超过100位。第二行输入一个数字 n ,表示需要连续变换多少次, n 不超过20。 输出一个串,表示最后一次变换完的结果。
时间: 2023-12-31 15:06:26 浏览: 45
以下是Java代码实现:
```java
import java.util.Scanner;
public class CodeTransformation {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入初始数字串:");
String code = input.nextLine();
System.out.print("请输入变换次数:");
int n = input.nextInt();
for (int i = 1; i <= n; i++) {
code = transform(code);
}
System.out.println("变换后的数字串为:" + code);
}
// 定义变换方法
public static String transform(String code) {
StringBuilder sb = new StringBuilder();
char[] nums = code.toCharArray();
int count = 1;
char curr = nums[0];
for (int i = 1; i < nums.length; i++) {
if (nums[i] == curr) {
count++;
} else {
sb.append(count).append(curr);
count = 1;
curr = nums[i];
}
}
sb.append(count).append(curr);
return sb.toString();
}
}
```
程序首先从命令行中读取初始数字串和变换次数,然后通过for循环进行连续变换,每次调用transform方法进行一次变换。最后输出变换后的数字串。
在transform方法中,我们使用StringBuilder类构建新的数字串,通过遍历原数字串,记录当前数字出现的次数和上一个数字,如果当前数字与上一个数字不同,就将当前数字的描述添加到StringBuilder中。最后返回StringBuilder中的字符串。
例如,输入初始数字串为"13",变换次数为3,那么输出的变换后的数字串为"1113122118"。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)