3的倍数

3的倍数

https://ac.nowcoder.com/acm/problem/54841

题意:将L-R之间的数连在一起构成一个新的数字,问这个数字能否被3整除

解:

首先,能被3整除==数字的和是3的倍数

其次,转化成的新的数字他的各位数字之和等于L-R中所有数字的各位数字和相加

问题转化为L-R之间所有数的和能否被3整除

用等比数列求和公式,(l + r) * (r - l + 1) / 2,判断能否被3整除即可

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
int t;
ll l,r;

int main()
{
    cin>>t;
    while(t--)
    {
        cin>>l>>r;
        if((l + r) % 3 == 0 || (r - l + 1) % 3 == 0)
            cout<<"YES\n";
        else cout<<"NO\n";
    }
    return 0;
}
全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务