Advertisement

pat乙级 C语言课程

阅读量:

1084 外观数列 (20分)

外观数列是一种具备特定特征的整数序列集合:起始数字d必须满足d≠1的条件,并且从第二位开始每一位都是对前一位进行描述的结果。例如,在第二位中可以看出第一位包含了一个数字d;第三位则显示第一位包含了一个数字d和两个连续的"1";第四位是根据第三位的情况推导出的结果即为"d113";进一步分析可知,在第四位出现了一个d,并被描述为"d1";接下来第一位中的"3"则被描述为"23";因此第四位变为"d23";第五位则是将第四位中的"d23"分别进行描述得到的结果即为"d223..."当然在d=0的情况下这一规则仍然适用。请计算给定初始数字d时外观数列在第N位的具体数值

请在第一行指定一个位于[0,9]区间内的整数d,并通过空格分隔的方式提供一个不超过40的正整数N。

在一行中给出数字 d 的外观数列的第 N 项。
输入样例:

1 8
输出样例:

1123123111

思路

根据需求编写了一个字符比较变换函数,在算法实现上需要对输入字符串进行逐字符对比操作以统计匹配数量并返回结果。该函数定义中对字符串长度的要求非常高(至少7万以上),而最后一个测试用例正好对应了这一具体实现需求。因此实现起来相对较为复杂但并不困难。从代码结构上来说该函数的核心逻辑非常简洁明了:当参数N为1时返回的结果与其原值保持一致。

复制代码

全部评论 (0)

还没有任何评论哟~