1sting+大fibonacci数列求和
2013-05-04 17:53
148 查看
1sting
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2237 Accepted Submission(s): 883
[align=left]Problem Description[/align]
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
The output contain n lines, each line output the number of result you can get .
[align=left]Sample Input[/align]
3 1 11 11111
[align=left]Sample Output[/align]
1 2 8
/*思路:这题就是一个大fibinacci数列求和,*/ #include<iostream> using namespace std; char f[205][102]; void cal(char a[],char b[],int n){ strrev(a); strrev(b); int lena=strlen(a); int lenb=strlen(b); int i,max=(lena>lenb)?lena:lenb; for(i=lena;i<max;i++) a[i]='0'; a[i]='\0'; for(i=lenb;i<max;i++) b[i]='0'; b[i]='\0'; int sum=0,num=0,k=0; for(i=0;i<max;i++){ sum=a[i]-'0'+b[i]-'0'+num; f [k++]=sum%10+'0'; num=sum/10; } while(num) { f [k++]=num%10+'0'; num/=10; } f [k]='\0'; strrev(f ); } void fun() { memcpy(f[1],"1\0",2); memcpy(f[2],"2\0",2); for(int i=3;i<=200;i++){ char a[102],b[102]; memcpy(a,f[i-1],102); memcpy(b,f[i-2],102); cal(a,b,i); } } int main() { int t; cin>>t; fun(); while(t--) { char a[201]; cin>>a; int len=strlen(a); int lenf=strlen(f[len]); for(int i=0;i<lenf;i++) if(f[len][i]) break; for(;i<lenf;i++) cout<<f[len][i]; cout<<endl; } return 0; }
相关文章推荐
- Fibonacci数列 前n项求和
- Fibonacci数列求和
- 蓝桥杯习题之入门训练 Fibonacci数列 、A+B问题 、序列求和 、圆的面积
- HDU 3059 Fibonacci数列与矩阵求和 矩阵大小不固定
- 学习笔记---几个小算法练习:1!-n!求和,Fibonacci数列,完全数,水仙花数,回文数
- HITOJ 2255 类似Fibonacci数列求和取模拓展
- poj_4047Garden区间更新_求和
- 序列求和 1加到10亿
- 第八周项目1分段函数求和
- L1正则化求导中的一个式子的理解proxh(x)=argminu(t||X||1+1/2||u−x||22)二范数平的和一范数求和的极小值取值的理解
- 第九周项目一之利用循环求和
- 素数求和问题
- 第九周项目一利用循环求和(1)
- 数论:积性函数求和练习集
- 第九周项目一:利用循环求和3
- [py]js前端求和与flask后端求和
- 第九周 利用循环求和
- Java递归解决子集求和问题
- 【算法导论】多项式求和
- flag23多项式求和