题意是这样的,1,12,123,1234,12345,123456,。。。这样的数列,前n项中有几项被3整除
首先我们知道,当一个数字各个位数之和是3的倍数时可以被整除。
然后观察数列,后一项就是前一项加上个n,各个位之和也就加上n,对于连续的三个数3×n+1,3×n+2,3×n+3 分别是mod 3 余1 余 2
这样就是mod 3 余1的项不会被整除 , 余2 的和前面的1补上是一个3,所以只要判断n%3 == 几即可
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
cin >> n ;
cout << (n / 3)*2 + (n % 3 == 2) <<endl;
}