列表

详情


NC54841. 3的倍数

描述

给你两个正整数L, R, 然后把L到R之间的数连起来形成一个新的数x。判断x是不是3的倍数。
例如:L = 2, R = 4, 则 x = 234;  L = 10, R =12, x = 101112.

输入描述

第一行是一个整数T,表示有T组数据。接下来有T行,每行两个整数L, R(L<= R)。

1<=T<= 10, L <= R <= 10^18 。

输出描述

每组数据对应只有1行输出,如果x是3的倍数,则输出"YES",否则输出"NO"。

示例1

输入:

3
2 4
2 2
3 5

输出:

YES
NO
YES

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++ 11.0.1) 解法, 执行用时: 29ms, 内存消耗: 456K, 提交时间: 2022-11-26 10:57:27

#include<iostream>
using namespace std;
int main(){
	long long T,L,R;
	cin>>T;
	while(T--){
		cin>>L>>R;
		if((L+R)%3==0||(R-L+1)%3==0)
		cout<<"YES"<<endl;
		else
		cout<<"NO"<<endl;
	}
	return 0;
} 

pypy3 解法, 执行用时: 210ms, 内存消耗: 26072K, 提交时间: 2023-04-30 20:52:17

for i in range(int(input())):
    a,b=map(int,input().split())
    res=(a+b)*(b-a+1)//2
    if res%3==0:
        print("YES")
    else:
        print("NO")

Ruby 解法, 执行用时: 102ms, 内存消耗: 9148K, 提交时间: 2021-11-08 17:34:51

t=gets.to_i
for i in 1..t
    l,r=gets.split().map(&:to_i)
    if (r+l)*(r-l+1)%3==0
        puts 'YES'
    else
        puts 'NO'
    end
end

Python3 解法, 执行用时: 104ms, 内存消耗: 4588K, 提交时间: 2023-07-14 23:01:06

t = int(input())
for i in range(t):
    l,r = map(int,input().split())
    print("YES" if (l+r)%3==0 or (r-l+1)%3==0 else "NO")

上一题