1065 A+B and C (64bit) (20分)

#include 
#include								//此题A,B,C测试集不取2^63
using namespace std;

int main()
{
    int T,cnt=1;
    scanf("%d",&T);
 	while(T--)
	{
		long long A,B,C;
		scanf("%lld%lld%lld",&A,&B,&C);								
		long long tmp = A+B;
	    //!	A = (long long)1<<63;			//给long long 类型 赋值 必须加强制转换!

		if(A>0 && B>0 && tmp<0)
		{
			printf("Case #%d: true\n",cnt);
		}
		else if(A<0 && B<0 && tmp>=0)printf("Case #%d: false\n",cnt);
		else{
			if(tmp > C)		printf("Case #%d: true\n",cnt);
			else	printf("Case #%d: false\n",cnt);
		}
		cnt++;
	}
	return 0;
}

 关于输入超出范围值的例如输入C=2^{63},不同编译器C的取值不同可能是循环越界得C=-2^{63},也能是取该范围边界2^{63}-1.

 

你可能感兴趣的:(PAT甲级)