标签:style blog io color os sp for on div
Division by 3.
发现一些规律:
一个数的数字和相加能被三整除,那么这个数也能被3整除。(1)
然后可以发现:
连续三个整数并排在一起组成的数的数字和必然能被3整除。(2)
最后通过(2)总结出:
1.题目中的第3K个数,必然能被三整除。
2. 题目中的第3K + 1个数,其第2个数字到最末一个数字之和必然能被3整除,再加上第一个数字,也就是1,就不能被3整除了。
3. 题目中的第3K + 2个数,其第3个数字到最末一个数字之和必然能被3整除,再加上第一、二个数字,也就是1 + 2 = 3,也能被3整除。
代码如下:
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; int fun(int n) { if(n==1||n==0) return 0; return n-1-(n-1)/3; } int main() { int a,b,t; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%d%d",&a,&b); printf("Case %d: %d\n",i,fun(b)-fun(a-1)); } return 0; }
标签:style blog io color os sp for on div
原文地址:http://www.cnblogs.com/miaoz/p/4168515.html