题目大意
有两个数a,b,有两种操作①a=a-2x,b=b-x②a=a-x,b=b-2x(x为任意大于等于0的整数),问进行若干次操作后,a,b能否全为0
解题思路
假设x=1,要使得a,b变成0,那么每次操作要将大的数减去2,小的数减去1,这样a,b才有可能同时为0.当减到两个数相等时,可以发现此时只有这两个数为3的倍数才能同时减到0
代码实现
#include <cstdio> using namespace std; int main() {int T,a,b;scanf("%d",&T);while (T--){scanf("%d%d",&a,&b);if (a>b){int c=a;a=b;b=c;}int k=(b-a);a=a-k;b=b-2*k;if (a<0 || b<0) printf("NOn");else if (a%3==0) printf("YESn");else printf("NOn"); } }
1234567891011121314151617181920212223