光棍的yy
时间限制:
1000?ms ?|? 内存限制:
65535?KB
难度:
2
-
描述
-
yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊  。
现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了  ,问这样的组合有多少种??
例如(111? 可以拆分为 111 12 21? 有三种)
-
输入
-
第一行输入一个n表示有n个测试数据
以下n行,每行输入m个1
(1 <= n,m <= 200)
-
输出
-
输出这种组合种数,占一行
-
样例输入
-
3
11
111
22222
-
样例输出
-
2
3
8
-
来源
hdu
斐波那契大数加法问题
#include<iostream>
#include<cstring>
#include<cstdlib>
#define MAX 50
using namespace std;
int res[205][MAX];//用于存储各个数值
void Init(){
res[0][MAX-1] = 0,res[1][MAX-1] = 1;
res[2][MAX-1] = 1;
for (int i = 3; i<205; i++){
int resualt,cont;
resualt = cont = 0;
for (int j = MAX-1; j>=0; j--){ //注意循环方向
resualt = res[i - 1][j] + res[i - 2][j] + cont;
cont = resualt / 10;
res[i][j] = resualt % 10;
}
}
}
int main(){
Init();
int n; cin >> n;
while (n--){
char str[205];
cin >> str;
int len = strlen(str);
int i;
for (i = 0; i < MAX; i++){
if (res[len+1][i]) break;
}
for (int j = i; j < MAX; j++){
cout << res[len+1][j];
}
cout << endl;
}
}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|