热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PAT(AdvancedLevel)1065A+BandC(64bit)(20分)

题目概述:我们应该知道,int是32位的(9位十进制左右),longlong是64位的(19位十进制左右)&#

在这里插入图片描述
题目概述:
我们应该知道,int是32位的(9位十进制左右),longlong是64位的(19位十进制左右),因此这道题两个64位的数相加有一定的可能会溢出。这道题考的就是溢出后的值是多少:

假设A和B都是longlong类型的,他们溢出当且仅当他们同号:

1&#xff09;如果A和B都是正的&#xff0c;那么sum<0时表示溢出
2&#xff09;如果A和B都是负的&#xff0c;那么sum >&#61; 0 时表示溢出&#xff08;特别注意这个等于号)

根据以上规则&#xff0c;这道题就可以轻易解决了&#xff1a;

//超大数加减
//考虑溢出
#include
using namespace std;int main()
{long long a, b, c;int t;scanf("%d", &t);for(int i &#61; 1; i <&#61; t; i&#43;&#43;){scanf("%lld %lld %lld", &a, &b, &c);long long sum &#61; a &#43; b;//首先考虑溢出的情况if(a > 0 && b > 0 && sum < 0)printf("Case #%d: true\n", i);else if(a < 0 && b < 0 && sum >&#61; 0)//特别注意这里的等于号printf("Case #%d: false\n", i);//非溢出情况else if(sum > c)printf("Case #%d: true\n", i);else printf("Case #%d: false\n", i);}return 0;
}

总结&#xff1a;
超大数溢出。


推荐阅读
author-avatar
恒如初见_193
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有