请教关于偶数的判断
查看原帖
请教关于偶数的判断
890321
mooktian楼主2024/1/9 10:50
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll k,n,e,d,b;
int main(){
scanf("%lld",&k);
while(k--) {
	scanf("%lld %lld %lld",&n,&e,&d);
	b = n + 2 - e*d;
	ll x = b*b - 4*n;
	if(x < 0) printf("NO\n");
	else {
		ll y = sqrt(x);
		//printf("%lld %lld y*y =%lld b = %lld %lld\n",x,y,y*y,b,(b - y)&1);
		if((x == y*y) && ((b - y)%2 == 0)) printf("%lld %lld\n",(b-y)>>1,n/((b-y)>>1));
		else printf("NO\n"); 
	}
}
return 0;
}

这里有一个偶数的判断: ((b - y)%2 == 0)这里如果我改成: ((b - y)&1 == 0)就不行, 但是我把(b - y)&1输出看了下,确实也是0啊,怎么就不行啊??

2024/1/9 10:50
加载中...