CF628B 1300

题意

解析

末尾2位是4的倍数即可。每次特判最后一位。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3e5 + 10;
string s;
bool check(string str){
    int x = 0;
    for(int i=0;i<str.size();i++) 
        x = x * 10 + str[i] - '0';
    if(x % 4 == 0) return true;
    return false;
}

int main(){
    cin >> s;
    ll cnt = 0;
    if(s[0] == '0' || s[0] == '4' || s[0] == '8') cnt++;
    for(int i=1;i<s.size();i++){
        if(check(s.substr(i-1,2))){
            cnt += i;
        }
        if(s[i] == '0' || s[i] == '4' || s[i] == '8') cnt++;
        // cout << endl << i << ' ' << s[i] << " " << cnt << endl;
    }
    cout << cnt;
    return 0;
}
posted @   Isaac233  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示