P1084 外观数列
2024-09-07 03:34:43
转跳点:
1084 外观数列 (20分)
外观数列是指具有以下特点的整数序列:
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 8
输出样例:
1123123111
这道题的难点在于如何探测数组的边缘,我直接试错,试出来的。
#include <stdio.h>
#include <stdlib.h> int main(void)
{
int d, n;
int count = 0;
char str1[100000] = {0}, str2[100000] = {0};
char *s1 = str1, *s2 = str2, *temp;
char *p1, *p2; scanf("%s %d", str1, &n); for (int i = 1; i < n; ++i)
{
for (p1 = s1, p2 = s2, count = 0; *p1; p1++)
{
count++;
if (*p1 != *(p1 + 1))
{
*p2++ = *p1;
*p2++ = count + '0';
count = 0;
}
}
temp = s1, s1 = s2, s2 = temp;
} puts(s1); return 0;
}
PAT不易,诸君共勉!
最新文章
- Akka-remote使用入门
- memset
- 另一种在WINFORM中使用XNA的方法
- Nhibernate的第一个实例
- Hadoop入门进阶课程9--Mahout介绍、安装与应用案例
- 首先,定义一个Print类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在 控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类 的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大 小写英文字母表。
- 304.	Range Sum Query 2D - Immutable
- C#程序中:如何向xml文件中插入节点(数据)
- Objective-C类的使用
- Centos7网络配置-转载
- [LeetCode] Judge Route Circle 判断路线绕圈
- H5唤醒app,不完全兼容
- python学习笔记5-字典
- GitHub 代码上传
- hdu 4004 (二分加贪心) 青蛙过河
- HDU1029(KB12-B)
- mysql主从不同步问题 Error_code: 1197
- android开发(39) 使用android系统的账户中心管理账
- 《小岛经济学--鱼、美元和经济的故事》Digest
- IDLE经常使用快捷键汇总