hdu 4148 Length of S(n)(找规律)

来源:互联网 发布:网络古风翻唱歌手 编辑:程序博客网 时间:2024/06/12 22:11
这题每个S(n)是描述S(n-1)值
例如:
S(1)=1;
S(2)=11;即描述S(1)有1个1=11
S(3)=21;即描述S(2)有2个1=21
S(4)=1211;即描述S(3)有1个2和2个1=1211
....
.....

.......

#include<iostream>#include<cstdio>#include<cstring>using namespace std;string s[40];void fun(){    int i,j,k,m;    s[0]="1";s[1]="11";    for(i=2;i<=30;i++)    {        int len=s[i-1].length();       for(m=1,j=1;j<len;j++)       {           if(s[i-1][j]!=s[i-1][j-1]){                s[i]+=char(m+'0');                s[i]+=s[i-1][j-1];                m=1;           }else{               m++;           }       }       if(j==len){        s[i]+=char(m+'0');        s[i]+=s[i-1][j-1];       }       //cout<<s[i]<<endl;    }}int main(){    int n,i,j;    fun();    while(scanf("%d",&n),n)    {        cout<<s[n-1].length()<<endl;    }    return 0;}


0 0
原创粉丝点击