c++
题面:小红拿到了一个数字串,她每次操作可以使得其向左循环移动一位。小红想知道,使得该数字串变成4的倍数,需要最少操作多少次?
自己可以运行,检查不出什么问题,为什么会错,编译错误。
运行错误请检查是否存在数组越界等非法访问情况
#include<bits/stdc++.h>
using namespace std;
bool f(string a){
int num=stoi(a);
return num%4==0;
}
string zz(string a,int l){
string cnt="";
for(int i=1;i<l;i++){
cnt+=a[i];
}
return cnt+a[0];
}
string s;
int main(){
cin>>s;
int len=s.size();
for(int i=0;i<=len;i++){
if(f(s)){
cout<<i<<'\n';
return 0;
}
s=zz(s,len);
}
cout<<"-1\n";
return 0;
}