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所有 转载请注明出处
posted @ 2014-06-28 22:35  keambar  阅读(133)  评论(0编辑  收藏  举报