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

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
07-01 13:37
门头沟学院 Java
steelhead:不是你的问题,这是社会的问题。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 14:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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