南阳oj 光棍的yy 题目655
2015-09-12 16:01
260 查看
光棍的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 11111
样例输出
2 3 8
来源hdu上传者yangyin1217
<span style="color:#000000;BACKGROUND-COLOR: #ffffff">#include <iostream>//c++头文件 #include <string>// #include <cstdio>// using namespace std; </span>string sum(string s1,string s2)//c++的字符串比c语言的字符数组方便多了 { if(s1.length()<s2.length())//s1.length()求得的是字符串的长度 { string temp=s1; s1=s2; s2=temp; } int i,j; for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--) { s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));//注意细节 if(s1[i]-'0'>=10)//超过10 { s1[i]=char((s1[i]-'0')%10+'0'); if(i) s1[i-1]++; else s1='1'+s1; } } return s1;//返回s1 } int main() { int n,T; scanf("%d",&T);//输入几组 while(T--) { string s;cin>>s;//输入字符串 if(s.size()==1){//1的情况 printf("1\n");continue; } else if(s.size()==2)//2的情况 { printf("2\n");continue; } string ans,a="1",b="2";//其他情况 for(int i=3;i<=s.size();i++) { ans=sum(a,b); a=b; b=ans; } cout<<b<<endl; } return 0; }
相关文章推荐
- hdu1081
- IOS中如何异步加载图片(三)KVO观察者
- 【数据结构与算法】哈夫曼树
- IRQL资料
- 安装adventure和northwind示例数据库
- Bootstrap响应式折叠导航
- UglyNumber - 找“丑数”
- Linux 学习:find命令习题
- pthread_kill向子进程发送信号函数
- 手写app学习笔记(一)
- 《剑指offer》数字在排序数组中出现的次数
- tomcat 点击start启动时候启动不了
- C#判断字符串中是否包含一个子字符串是可以直接使用Contains()方法
- 讨论1.7-01-复杂度1-最大子列和问题-算法4-在线处理
- IDEA14 创建Maven项目
- TCP之RST发送场景
- mahout学习之二——mahout0.9kmeans聚类实例
- 图的存储结构
- objective-c中汉字字符串进行比较
- 查看设备序列号和设备标识的方式(有三种方法)