1084 外观数列 (20 分)java
时间: 2023-04-16 08:00:50 浏览: 57
题目描述
外观数列是指具有以下特点的整数序列:
d, d1, d111, d113, d11231, d112213111, ...
它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应第 1 项的 d)和 1 个 1(对应第 1 项的 d1),所以第 3 项就是 d111。
你的任务是:给定任意正整数 d 和一个非负整数 n,请你独立计算出第 n 项是什么。
输入格式:
输入第一行给出一个正整数 d(1≤d≤9)和一个非负整数 n(≤40),用空格分隔。
输出格式:
输出第 n 项的描述。题目保证输出结果的长度不超过 2×10^4。
输入样例:
1 8
输出样例:
1113213211
Java 代码
相关问题
1084 外观数列 python
好的,我明白了。关于你的问题,我可以给你提供以下代码:
```python
def countAndSay(n: int) -> str:
if n == 1:
return "1"
prev = countAndSay(n - 1)
res = ""
i, j = 0, 0
while j < len(prev):
while j < len(prev) and prev[j] == prev[i]:
j += 1
res += str(j - i) + prev[i]
i = j
return res
```
这是一个递归函数,用于生成外观数列的第 n 项。函数的参数 n 表示要生成的项数,返回值为字符串类型的第 n 项。
1084 外观数列c语言
#include <stdio.h>
#include <string.h>
int main() {
char input_str[1000];
scanf("%s", input_str);
char current_char = input_str[0];
int count = 1;
for(int i = 1; i < strlen(input_str); i++) {
if(input_str[i] == current_char) {
count++;
} else {
printf("%d%c", count, current_char);
current_char = input_str[i];
count = 1;
}
}
printf("%d%c", count, current_char);
return 0;
}