外观数列
解题思路:
很显然,要得到第n个数就要知道滴n-1个数,所以需要用到递归。
代码:
public string CountAndSay(int n)
{
if(n==1)
return "1";
if(n==2)
return "11";
string lgx=CountAndSay(n-1);
int i=0;
int j=0;
StringBuilder result=new StringBuilder();
for(;i<lgx.Length-1;i++)
{
if(lgx[i]!=lgx[i+1])
{
result.Append(string.Format("{0}{1}",i-j+1,lgx[j]));
j=i+1;
}
}
result.Append(string.Format("{0}{1}",i-j+1,lgx[j]));//最后总会剩下一个或多个相同的数。
return result.ToString();
}