Length of S(n)

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1406    Accepted Submission(s): 838

Problem Description
A number sequence is defined as following:
S(1)=1,
S(2)=11,
S(3)=21,
S(4)=1211,
S(5)=111221,
S(6)=312211,
……
Now, we need you to calculate the length of S(n).

 
Input
The input consists of multiple test cases. Each test case contains one integers n.
(1<=n<=30)
n=0 signal the end of input.
 
Output
Length of S(n).
 
Sample Input
2
5
0
 
Sample Output
2
6
 
本题最重要的是找到规律,观察数据排列可以知道
S(1) = 1
S(2) = 11
S(3) = 21
S(4) = 1211
S(5) = 111221
S(6) = 312211
...
即 S(n) 与 S(n-1) 有关系 :S(1)有一个1 所以S(2) = 11, S(2)有2个1, 所以S(3) = 21 以此类推。
可以通过前一个推出后一个字符串,然后将所有情况枚举出来

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 2500; //每个字符串的长度未知,因此数组长度可以开大一点

char c[31][N];

void lengthS()
{

  int len, count, k;
  memset(c, 0, sizeof(c));//很容易忘记

  c[1][0] = '1';
  c[2][0] = '1';
  c[2][1] = '1';

  for(int i = 3; i <= 30; i++)//将所有的字符串枚举出来
  {
    len = strlen(c[i-1]);
    k = 0, count = 1;

    for(int j = 0; j < len; j++)
    {
      if(c[i-1][j] == c[i-1][j+1])
      {
        count++;
      }
      else
      {
        while(count)
        {
          c[i][k++] = count%10 + '0';// 记录个数
          count /= 10;
        }
        c[i][k++] = c[i-1][j];
        count = 1;
      }
    }
  }
}
int main()
{
  int n, len;
  lengthS();
  while(cin >> n && n)// n = 0时结束程序
  {
    len = strlen(c[n]);
    cout << len << endl;
  }
  return 0;
}

hdu4148 Length of S(n)的更多相关文章

  1. 《Pro AngularJS》学习小结-02

    上一篇的项目只有一个单独的模板页面,加入了相应的controller,filter,使得页面上的数据能够动态的变化.现在我们开始建立并整合多个模板,加入购物车模块和结账checkout模块. 一.在页 ...

  2. C#中Length和Count的区别(个人观点)

    这篇文章将会很短...短到比你的JJ还短,当然开玩笑了.网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家 ...

  3. js报错: Uncaught RangeError: Invalid string length

    在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...

  4. string length() 方法注意点

    突然意识到string length() 是跟文件的字符编码相关的 测试了下, 果然如此: 对于常见字, 结果是一样的, System.out.println("T中国123".l ...

  5. String构造器中originalValue.length>size 发生的情况

    最近在看Jdk6中String的源码的时候发现String的有个这样的构造方法,源代码内容如下: public String(String original) { int size = origina ...

  6. [LeetCode] Encode String with Shortest Length 最短长度编码字符串

    Given a non-empty string, encode the string such that its encoded length is the shortest. The encodi ...

  7. [LeetCode] Length of Last Word 求末尾单词的长度

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  8. 有关Javascript的length()函数

    刚开始学JavaScript的时候,length()对我来说是一个获取字符串长度的函数.然而前几天开始读犀牛书,得知该函数是计算字符串中16位值的个数.也就是说,对于UTF-16来说,如果包含占据了两 ...

  9. easyui Datagrid查询报错Uncaught TypeError:Cannot read property 'length' of undefined

    1.问题描述 easyui中datagrid执行loadData方法出现如下异常:Cannot read property 'length' of undefined 2.一开始怀疑是js或者页面的问 ...

随机推荐

  1. IOS学习笔记27—使用GDataXML解析XML文档

    http://blog.csdn.net/ryantang03/article/details/7868246

  2. spring问题:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive

    问题描述: spring的:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive 解决方案: 缺少jar ...

  3. Java中泛型数组创建总结

    在java中,可以声明一个泛型数组,不能通过直接通过T[] tarr=new T[10]的方式来创建数组,最简单的方式便是通过Array.newInstance(Classtype,int size) ...

  4. 开源三维地球GIS引擎Cesium常用功能的开发

    Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...

  5. winform打开本地html页面

    有时候为了提高开发效率和后期可维护性,把cs里面嵌套了远程网页,这样方便后期升级.比如,美图秀秀,qq音乐PC都嵌套了本地和远程网页.在页面拖入控件System.Windows.Forms.WebBr ...

  6. start tomcat with debugging mode

    For this, you must run your application in debug mode, which requires below parameters. -Xdebug -Xru ...

  7. ListCtrl控件

    一 CListCtrl类型 LVS_EDITLABELS LVS_OWNERDRAWFIXED LVS_REPORT LVS_SHOWSELALWAYS LVS_SINGLESEL LVS_SMALL ...

  8. Asp.net Core 入门实战

    Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个合集,方便一次性Clone 目录 快速入门 安装 一个最小的应用 项目模板 路由 静态文件 ...

  9. org.json.JSONObject的optXXX方法

    JSONObject有很多optXXX方法,比如optBoolean,optString,optInt.... 他们的意思是:如果这个JSONObject对象,如果有返回这个属性的值,如果没有返回一个 ...

  10. 如何用Python爬虫实现百度图片自动下载?

    Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或 ...