大致题意:
给出一串数,从中找出连续的字串,求能够整除4的字串的个数
方法:
从后往前遍历
如果一个数的后两位能被4整除,则这个数就是4的倍数
#include <bits/stdc++.h>
using namespace std;
char str[10000000];
int main()
{
while(~scanf("%s",str))
{
long long ant = 0;
int len = strlen(str);
for(int i=len-1; i>=0; i--)
{
if((str[i] - '0') % 4 == 0)
ant++;
for(int j=i-1; j>=0; j--)
{
long long sum = 0;
for(int k=j; k<=i; k++)
sum = sum * 10 + (str[k] - '0');
if(sum % 4 == 0)
{
if(i - j == 1)
{
ant += j+1;
break;
}
}
else break;
}
}
printf("%I64d\n",ant);
}
return 0;
}