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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 15:39
点赞 评论 收藏
分享
认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务