混牛币
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");
    }
}

京公网安备 11010502036488号