原题链接:传送门
题意:给一个数n,然后将这个数分成若干部分,每个部分的和都可以被3整除,并且每个部分的数不超过3位。问最多可以分出部分。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main(){
int sum,cnt,ans;
string str;
cin>>str;
int len = str.length();
cnt = 0,ans = 0;
for(int i=0;i<len;i++){
sum += str[i] - '0';
cnt ++;
if((str[i] - '0')%3 == 0 || sum % 3 == 0 || cnt == 3){
ans ++;
sum = 0;
cnt = 0;
}
}
printf("%d\n",ans);
return 0;
}