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

A+B and C (64bit) (20)
两个64位数相加,两种办法:

第一种,判断是否发生溢出 :


x+ 、y+ 结果为负数,一定为true
x -、y-、x+y>=0 (注意等于一定要有) 结果为 false
x、y 一正一负,直接相加比大小


第二种 数组相加(些许麻烦,不过比较好想到)

第一种代码:


#include 
using namespace std;
int main()
{
     
 long long x,y,z;
 long long n;
 cin>>n;
 for(int i = 0;i<n;i++)
 {
     
  cin>>x>>y>>z;
  long long tmp = x+y;
  printf("Case #%d: ",i+1);
  if(x>0&&y>0&&tmp<0) //正溢出 
   printf("true");
  else if(x<0&&y<0&&tmp>=0) //负溢出 
   printf("false");
  else if(tmp > z)
   printf("true");
  else
   printf("false");
  printf("\n");
 }
}

你可能感兴趣的:(蓝桥杯,PAT,算法,算法)