Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1406 Accepted Submission(s): 838
ios
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 2500; //每一个字符串的长度未知,所以数组长度能够开大一点数组
char c[31][N];spa
void lengthS()
{ip
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;
} ci