Polycarp and Div 3
做这道题要明白一些东西:
- 能够被3整除的数,其数位之和为3的倍数
- 如果把数分成一位一位,相邻三个不为0位置一定能够组成一个被3整除的数(111,112,121,122,211,212,221,222)
代码:
// Created by CAD on 2020/1/11.
#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
string s;
cin>>s;
int cnt=0,sum=0,ans=0;
for(auto i:s)
{
sum+=i-'0';
cnt++;
if(cnt==3||sum%3==0||(i-'0')%3==0)
ans++,cnt=0,sum=0;
}
cout<<ans<<endl;
return 0;
}
CAD加油!欢迎跟我一起讨论学习算法,QQ:1401650042