1157: 连续的n个1
时间限制: 1 Sec 内存限制: 128 MB
提交: 4375 解决: 2955
[状态] [讨论版] [提交] [命题人:admin]
题目描述
计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。
输入
输入第一行为一个字符串,由0和1组成,长度小于1000;输入第二行为一个正整数n。
输出
输出一个整数,表示连续n个的1的子串的个数。
样例输入 Copy
0101001110101111011 2
样例输出 Copy
6
代码
#include <stdio.h>
#include <limits.h>
#include <string.h>int main()
{int i,k=0,c=0, n;char s[1100];gets(s);//输入字符串,回车结束scanf("%d", &n);//几个一相连for(i=0;s[i]!='\0';i++){if(s[i]==s[i+1]&&s[i]=='1')//判断相连的是否为1k++;//当前相连一的个数elsek=0;//有不相连是重新计数if(k==n-1)//判断是否符合条件{c++;//符合条件的次数k=k-1;//符合时去掉第一个,判断加上后一个时是否还符合}}printf("%d\n",c);//输出符合个数return 0;
}