题解 | #3的倍数#
3的倍数
https://ac.nowcoder.com/acm/problem/54841
混牛币
3的倍数
题意:
就是把给的数全部都连接起来,然后判断这个数是不是3的倍数。
思路:
题目很简单,由小学的知识 就知道,判断一个数是不是3的倍数,只需要判断每一位的和是不是3的倍数就行了。
当然不可能把每个数都分解,可以证明,从L ~ R的所有位数相加%3 ,就等于 L~R求和。
求和公式:
所以题目最后变成了判断 和 是不是3的倍数。
code:
#include<iostream>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
long long l,r;//观察数据范围,1e18,肯定要做到O(1)
cin>>l>>r;
if((r+l)%3==0||(r-l+1)%3==0) puts("YES");
else puts("NO");
}
}