【LightOJ 1136】Division by 3(简单数学)
BUPT2017 wintertraining(16) #5 C
HDU - 1021
题意
1, 12, 123, 1234, ..., 12345678910, ... 问第a到第b个数(inclusive)里有几个可以被3整除。
题解
前几项的各位数之和对3取模,可以找到规律——余数是1,0,0,1,0,0,1,0,0,1...。也就是每三个数有两个可被3整除。
代码
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int T;
int get(int x){
return x/3*2+(x%3>1);
}
int main() {
scanf("%d",&T);
for(int c=1,a,b;c<=T;c++){
scanf("%d%d",&a,&b);
printf("Case %d: %d\n",c,get(b)-get(a-1));
}
return 0;
}
┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆