当前位置: 首页 > news >正文

1065 A+B and C (64bit)

题:点我
题目大意
在这里插入图片描述
这题虽然看着像签到,然鹅签不过去。
因为我最初写的沙雕代码是:

#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{int t;scanf("%d", &t);for (int i = 0; i < t; i++){long long a, b, c;scanf("%lld%lld%lld", &a, &b, &c);if (a + b <= c){printf("Case #%d: false", i + 1);}else{printf("Case #%d: true", i + 1);}if(i!=t-1)printf("\n");}
}

这题的数据范围应该是用long long的,然鹅一旦发生溢出就不能简单的用加法来表示了,发生溢出的两种情况:

  1. 两个正数相加之后是负数,比如两个 2 31 − 1 2^{31}-1 2311,相加之后的结果是 − 2 32 -2^{32} 232,这个负数到不了 0 0 0
  2. 两个负数相加之后是正数,比如 − 2 32 -2^{32} 232,相加之后结果是 0 0 0

修改后代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main(void)
{int t;scanf("%d", &t);for (int i = 0; i < t; i++){long long a, b, c;scanf("%lld%lld%lld", &a, &b, &c);long long sum=a+b;if (a > 0 && b > 0 && sum < 0){printf("Case #%d: true", i + 1);}else if (a < 0 && b < 0 && sum >= 0){printf("Case #%d: false", i + 1);}else if (a + b <= c){printf("Case #%d: false", i + 1);}else{printf("Case #%d: true", i + 1);}if(i!=t-1)printf("\n");}
}
http://www.lryc.cn/news/158073.html

相关文章:

  • 阿里云效和阿里在线idea使用
  • [git] 删除分支中的内容 -> 空分支
  • git 配置
  • vue router进行路由跳转并携带参数(params/query)
  • Mysql触发器
  • 认识doubbo和rpc
  • get_views中list的arch格式
  • 淘宝商品销量接口API更新(总销+精准月销API)
  • Android 11编译第三弹 ADB开启ROOT权限
  • 《TCP/IP网络编程》--基于TCP实现字符串对话和文件传输
  • Feign负载均衡写法
  • OpenCV(二十八):连通域分割
  • 达梦控制台还原报错“管道失败”
  • [杂谈]-快速了解直接内存访问 (DMA)
  • java八股文面试[设计模式]——23种设计模式
  • mysql(十)mysql主从复制--主库切换
  • vue3项目的src下的各个文件夹介绍
  • 五、编译预处理
  • 应用出海,Google 分享如何让数字营销素材再上层楼
  • 酱香咖啡喝了没?用数据分析揭秘瑞幸咖啡的7500万用户增长策略
  • Grafana之魔法:揭秘数据可视化的艺术
  • c高级day2作业
  • 第3章 【MySQL】字符集和比较规则
  • 2023 年全国大学生数学建模D题目-圈养湖羊的空间利用率
  • 攻防世界-WEB-ics-05
  • typedef的四种用法
  • Rstudio开不开了怎么办?R is taking longer to start than usual
  • kubernetes 集群安装加载 br_netfilter 模块
  • CATIA Composer软件安装包分享(附安装教程)
  • 入行测试一年半的心得体会