计数和数数

“伯爵说”序列如下:1,11,21,1211,111221,…。其1读作one 1或者1111读作two 1s或者2121读作one 2, one 1或者1211

输入格式

多组输入,读到文件结束。每组输入给定一个整数 n(1≤n≤30)。

输出格式

输出第 n 个序列。注意,整数序列以字符串的形式表示。

样例输入

6

样例输出

312211

提示:

相信你已经看懂了题目,如果没看懂,小提示下,

其实类似于求“斐波那契”数列的第 n 项哦~

问题链接:JSK-23 计数和数数

问题描述:(略)

问题分析

这个实际上就是Look and Say数列。该数列在OEIS中的编号是A005150。

之前写了一个考虑多了,逻辑有点复杂,参见参考链接。因为连续数字的数量不会超过一位数字,代码可以写得更简单。

这个题解是按打表的方式来写的,相对会通用一些。

程序说明

用C语言编程,数列可以存储在二维字符数组中;用C++语言编程的话,可以存储在字符串数组中。

符号常量M的值取多少,需要实现算一下才能知道。它关乎最长的字符串有多长。

参考链接:POJ3438 ZOJ2886 UVALive3822 Look and Say【数列+水题】

题记:数列问题是常见的问题。

AC的C语言程序如下:

/* JSK-23 计数和数数 */#include <stdio.h>
#include <string.h>//#define DEBUG#define N 30
#define M 5000
char a[N + 1][M];void init()
{a[1][0] = '1';a[1][1] = '\0';char look;int say, i, j;for(i = 2; i <= N; i++) {// Look and Say转换:一边读入一边转换int k = 0;look = a[i - 1][0];say = 1;for(j = 1; a[i - 1][j]; j ++) {if(a[i - 1][j] == look)say++;else {a[i][k++] = '0' + say;a[i][k++] = look;look = a[i - 1][j];say = 1;}}a[i][k++] = '0' + say;a[i][k++] = look;a[i][k] = '\0';}
}int main()
{init();
#ifdef DEBUGprintf("%d\n", (int)strlen(a[N]));
#endifint n;while(scanf("%d", &n) != EOF)printf("%s\n", a[n]);return 0;
}

JSK-23 计数和数数【数列】相关推荐

  1. 高中数学数列重要公式及23个典型的数列专题

    高中数学数列重要公式及23个典型的数列专题(有电子完整版)私信领取. 今天高中数学数列重要公式及23个典型的数列专题分享就到这里了,关注高中数学肖博老师为大家分享更多高中数学知识点和视频教程.

  2. 高数-数列极限与函数极限

    极限 数列极限 n n + 1 {n\over n+1} n+1n​ -->1 1.定义: 对于数列an,如果它的极限是a,那么,不管给出多小的正数ε,总能找到正整数N,只要数列的下标n> ...

  3. [BZOJ4001] [TJOI2015] 概率论 [期望计数] [卡特兰数打表 / 生成函数广义二项式定理]

    [Link\frak{Link}Link] 预备结论们 卡特兰数 Cn=(2nn)−(2nn±1)C_n={2n\choose n}-{2n\choose n\pm1}Cn​=(n2n​)−(n±12 ...

  4. 《算法竞赛进阶指南》数论篇(3)-组合计数,Lucas定理,Catalan数列,容斥原理,莫比乌斯反演,概率与数学期望,博弈论之SG函数

    文章目录 组合计数 例题:Counting swaps Lucas定理 Cnm≡Cnmodpmmodp∗Cn/pm/p(modp)C_n^m\equiv C_{n\ mod\ p}^{m\ mod\ ...

  5. C语言循环练习题(共23题)

    C语言循环练习题(共23题) 循环01:最大数 循环02:素数 循环03:数列求和 循环04:西瓜卖几天 循环05:成绩判定 循环06:数列求和 循环07:水仙花数 循环08:数位之和 循环09:奇数 ...

  6. js一个大盒子中有三个小盒子_寒假预习:一万有多大,数一数估一估,亲身感觉一万有多大...

    空中课堂的教学进行到二年级数学万以内数的认识了.怎样让学生感受到一万有多大呢?我给学生布置了一个数数的作业.布置作业前一天,我自己先数了数. 我数的是大米,先一粒一粒的数出一百粒大米放在一个小盒子里, ...

  7. 素数计数公式全面拉丁化改写-小有改进-Meissel公式-梅塞尔-Lehmer公式-莱梅=勒梅尔-筛法三种形式-孟庆余公式(转载)...

    何冬州的百度空间Blog   本文的另一版本:  http://hi.baidu.com/wsktuuytyh/blog/item/396a934ac679680208f7ef2c.html    信 ...

  8. c++十大排序之计数排序

    ​ ​ 活动地址:CSDN21天学习挑战赛 正文 At first,我们先look一张我从某文章*的表格,来了解一下这几大算法 图都看了,那我也不得不提一嘴,图里面的东西了 算法效率 在一个算法设计完 ...

  9. [数学]——一文记录高数、线代、概统知识点

    目录 高数 线代(50min) 概统(50min) 补充 高数 高数 数列和函数极限的定义: 数列:任意ε,存在N,n>N时,|x-极限| < ε 函数:任意ε,存在δ,0<|x-x ...

最新文章

  1. Nginx最新版安装教程(Windows+Linux)
  2. 建校仅11年就入选“双一流” ,这所高校是凭什么做到的?
  3. 二叉树的递归和非递归遍历
  4. Qt中线程的生命期问题
  5. OpenCV形态morphology的实例(附完整代码)
  6. 如何保存推特链接以供以后从台式机和手机阅读
  7. css高度已知,左右定宽,中间自适应三栏布局
  8. Linux 桌面玩家指南:09. X Window 的奥秘
  9. 使用阿里云Mysql集群做读写分离_以及使用阿里云服务器自己搭建MyCat集群_费用核算---Linux工作笔记046
  10. 最大熵模型介绍及实现
  11. 【百度地图API】如何制作孪生姐妹地图?
  12. 深入浅出Linux设备驱动编程--引言
  13. python 用题库自动答题器_用题库自动答题
  14. 惠威T200B刷机 Q群
  15. 模拟游戏在设计上是如何处理对仿真性的追求的?
  16. 【java-JDK的下载-安装-配置】
  17. c语言 x16 x15 x2 1,CRC算法原理及C语言实现
  18. 组合学:使用10个数字与52个字母生成1477万个不重复的4位串码
  19. 自然语言处理NLP面试问题
  20. Mysql各数据库引擎优缺点,以及常用表锁,行锁,页面锁(个人总结)

热门文章

  1. 如何使用GDAL进行图像镶嵌
  2. 管理系统中的计算机应用数据库系统,自考管理系统中的计算机应用重点: 数据库系统(1)...
  3. Go发起Http请求及获取相关参数
  4. Hack, Everything!
  5. 【java学习之路】(javaWeb【后端】篇)005.会话
  6. Qt动态映射qobject_cast()
  7. PyCharm 的初始设置
  8. android studio进度条的应用,Android Studio实现进度条效果
  9. java动态数组储存敌机_如何使用参数通过graphql将动态数组字符串存储为neo4j中的节点属性?...
  10. linux mysql emoji_Linux宝塔面板MySQL存储emoji,非服务器命令方法