外观数列
题目描述
外观数列是指具有以下特点的整数序列:
1 | d, d1, d111, d113, d11231, d112213111, ... |
它从不等于 1 的数字 d 开始,序列的第 n+1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是 1 个 d(对应 d1)和 1 个 1(对应 11),所以第 3 项就是 d111。又比如第 4 项是 d113,其描述就是 1 个 d,2 个 1,1 个 3,所以下一项就是 d11231。当然这个定义对 d = 1 也成立。本题要求你推算任意给定数字 d 的外观数列的第 N 项。
输入格式
输入第一行给出 [0,9] 范围内的一个整数 d、以及一个正整数 N(≤ 40),用空格分隔。
输出格式
在一行中给出数字 d 的外观数列的第 N 项。
输入样例
1 | 1 8 |
输出样例
1 | 1123123111 |
问题解决
解题思想
明白了外观数列的意思问题也就很容易解决了。此处我用了char
型vector
容器来存储每一项的内容,计算第n+1项的内容时,先将第n项暂存并清空容器,然后边处理边存入。在这里vector
有个特别好的特性就是两个同类型的vector
容器可以直接赋值。
坑点提醒
None
代码示例(C/C++)
1 |
|
题目来源:PAT乙级1084
作者:CHEN, Yue
单位:浙江大学