SGU 105.Div 3
时间限制: 0.5 sec
空间限制: 4096 KB
描述
有一个这样的数列:1, 12, 123, 1234, ..., 12345678910, ... 。计算这个数列的前N项中,能被3整除的数的个数。
输入
整数N (1<=N<=2^31 - 1)。
输出
一个整数,答案.
样例输入
4
样例输出
2
{=========================}
分析:
很简单的数学问题,能被三整除的数所有位置上的数字和是3的倍数
从1开始 到 n 模3 的余为
1,2,0,1,2,0……1,2,0
所以每三个数%3的结果为 1,0,0
所以答案即 2*(n/3)+(n%3)/2
代码:
#include <iostream> using namespace std; int n; int main(){ cin>>n; cout<<2*(n/3)+(n%3)/2; return 0; }
http://www.cnblogs.com/keam37/ keam所有 转载请注明出处