您的位置:首页 > 其它

1sting<hdoj1865>

2016-07-18 20:33 274 查看


1sting

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 5093    Accepted Submission(s): 1903


Problem Description

You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or leave the ‘1’ there. Surly, you may get many different results. For example, given 1111 , you can get 1111, 121, 112,211,22. Now, your work is to find the total
number of result you can get.

 

Input

The first line is a number n refers to the number of test cases. Then n lines follows, each line has a string made up of ‘1’ . The maximum length of the sequence is 200.

 

Output

The output contain n lines, each line output the number of result you can get .

 

Sample Input

3
1
11
11111

 

Sample Output

1
2
8

 

Author

z.jt
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
char a[1001][1001];

int main()
{
memset(a,'0',sizeof(a));
a[1][0]='1';
a[2][0]='2';
int d=1;
for(int i=3;i<1001;i++)
{
d++;
int jin=0,s;
for(int j=0;j<=d;j++)
{
s=a[i-1][j]-'0'+a[i-2][j]-'0'+jin;
jin=s/10;
a[i][j]=s%10+'0';
}
}
int t;
char s[1001];
scanf("%d",&t);
while(t--)
{

scanf("%s",&s);
int n=strlen(s);
int k=1000;
while(k--)
{
if(a
[k]!='0')
break;
}
for(int i=k;i>=0;i--)
{
printf("%c",a
[i]);

} printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大数算法 递归