1157: 连续的n个1
时间限制: 1 Sec 内存限制: 128 MB
题目描述
计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。
输入
输入第一行为一个字符串,由0和1组成,长度小于1000;输入第二行为一个正整数n。
输出
输出一个整数,表示连续n个的1的子串的个数。
样例输入 Copy
0101001110101111011 2
样例输出 Copy
6
#include <stdio.h>
#include <string.h>
#define N 1000
int main()
{
char num[N];
int i,j,n,sum,end=0;
gets(num);//把读入的字符串存入字符数组num中
scanf("%d",&n);
for(i=0;num[i]!='\0';i++)//判断连续n个的1的子串的个数
{
sum=0; //用sum记录连续1的数量
for(j=i;j<i+n;j++) //从num[i]算起到num[i+n-1]判断这些元素是否是1
if(num[j]=='1')
sum++;
if(sum==n) //如果连续的个数刚好是n则用end记录下来累计的个数
end++;
}
printf("%d",end);
return 0;
}