当前位置: 代码迷 >> 综合 >> 1325 连续的1有多少
  详细解决方案

1325 连续的1有多少

热度:11   发布时间:2023-12-05 17:51:54.0

1325 连续的1有多少

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 446 | 通过数 : 234

题目描述

计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个的1有多少个,确实麻烦,问题来了,你有简单方法找出所有的连续n个的1的个数。很简单吧,那就来吧,亲。

输入要求

一个字符串,由0和1组成,每个测试数据一行,长度小于1000。

输出要求

升序输出所有的连续n个的1的个数m,每行一个n,然后是个数m。

输入样例

0101001110101111011

输出样例

1 12
2 6
3 3
4 1

提示

参考别人代码,将m=1和m>1分开讨论

#include<bits/stdc++.h>
using namespace std;
int main()
{string a;cin>>a;int len=a.size();int m=1,i,j,count,sum=0;for(i=0;i<len;i++){if(a[i]=='1')sum++;}if(sum>0)printf("%d %d\n",m,sum);sum=0;for(m=2;m<len;m++){for(i=0;i<len;i++){count=1;if(a[i]=='1'&&m!=1){for(j=i+1;j<i+m;j++){if(a[j]!='1')break;elsecount++;}}if(count==m)sum++;}if(sum>0)printf("%d %d\n",m,sum);sum=0;
}return 0;}