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;
}