该题考察模拟和4的倍数的性质.首先4的倍数最后2位是4的倍数,如136,36%4==0,故136为4的倍数,证明百度

此题需要向右移动字符串,我们需要特判3个东西

将这3个特判以后我们模拟即可,比如第二次移动是s[0]s[1],第三次是s[1]s[2],以此类推

#include <bits/stdc++.h>

using namespace std;

string s;

int main(){
    cin >> s;
    int n=s.size(),res=1;//因为有第三个特判,所以从1开始
    if(n==1 && s[0]-'0'%4==0) {cout << 0 << endl;return 0;}//第一个特判
    else if((s[n-1]-'0'+(s[n-2]-'0')*10)%4==0) {cout << 0 << endl;return 0;}//第二个特判
    else if((s[0]-'0'+(s[n-1]-'0')*10)%4==0) {cout << 1 << endl;return 0;}//第三个特判
    else{
    	//逐位检查每一次移动
        for(int i=0;i<n-2;i++){
            if((s[i+1]-'0'+(s[i]-'0')*10)%4==0){
                res++;
                cout << res << endl;
                return 0;
            }
            res++;
        }
    }
    cout << -1 << endl;
    return 0;
}