B1011.A+B和C(值溢出问题)
来源:互联网 发布:vue.js 动态添加dom 编辑:程序博客网 时间:2024/06/10 22:16
【Time Limit:50ms Memory Limit:65 536KB】 难度指数:★★☆☆☆
题目描述:给定区间内的三个整数A、B和C,请判断A+B是否大于C。
输入格式:第一行给出整数T(T<=10),即测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数以空格分隔。
输出格式:对每组测试用例,如果A+B>C,在一行中输出“Case#ⅹ:true”;否则输出“Case#ⅹ:false”,其中ⅹ是测试用例的编号(从1开始)。
输入样例:
4
1 2 3
2 3 4
2147483674 0 2147483646
输出样例:
Case#1:flase
Case#2:true
Case#3:true
Case#4:flase
//———————————————————————————–
思路:
输入count用以表示下面输入的数据组数,同时令tcase表示当前是第几组数据,初值为1.对于每组数据,都判断A+B是否大于C,然后输出相应的Case#ⅹ:false和Case#ⅹ:true。
注意:
①如果要执行count次。则应用count–,而非–count(执行count-1次);
②题目给出的范围是,首先要知道int型变量的数据范围是
,所有当A和B都取最大值
时候,他们相加的值就是
,而这明显超过了int型所能表示的范围了,所以应该将其类型写为long long类型,但是注意在vc++编译器下不支持long long类型,在vc下应该使用_int64,输入使用%I64d。
③此题目还有方法二,利用a和c-b来比较大小,这就不会超出int的范围了;
④注意int,long,long long,_int64,unsigned int,unsigned long ,unsigned long long,unsigned _int64的取值范围,此链接“ ”为总结的范围表示。
//———————————————————————————-
(方法一)代码:
#include<stdio.h>int main(){ int count,tcase = 1; scanf("%d",&count); while(count--){ _int64 A,B,C; scanf("%I64d%I64d%I64d",&A,&B,&C); if(A+B > C) printf("Case #%d:true\n",tcase++); else printf("Case #%d:false\n",tcase++); } return 0;}
(方法二)代码:
#include<stdio.h>int main(){int n;scanf("%d",&n); int a,b,c; int k=1;while(n--){scanf("%d %d %d",&a,&b,&c);if(a > (c-b)) printf("Case #%d: true\n",k);else printf("Case #%d: false\n",k);k++;}return 0;}
PS:每天学习和更新CCF/PAT算法题,算法爱好者们欢迎加关注,互相学习,一起进步。
- B1011.A+B和C(值溢出问题)
- B1011.A+B和C
- PAT B1011 A+B和C
- PAT B1011. A+B和C (15)
- B1011. A+B和C (15')
- PAT:B1011 A+B 和C
- PAT乙级练习题B1011. A+B和C
- 3.1入门模拟B1011. A+B和C (15)
- 问题 F: A+B和C (15)
- c=a+b 溢出处理
- 如何解决 a+b >c 和 a*b 和 a-b 的 integer overflow 问题
- A+B+C问题
- A+B+C问题
- A+B+C问题
- (a^b)%c和(a/b)%c
- 1065. A+B and C (64bit) (20) 大数据溢出问题
- A+B和C
- A+B和C
- 第八届服创大赛有感
- 为什么说《让子弹飞》是古今中外的神片
- Java垃圾回收详解
- html5/css3响应式布局
- Hadoop日记1:初探linux、JDK、Hadoop2、Hello World
- B1011.A+B和C(值溢出问题)
- 微信扫码支付
- 拓扑排序
- 从React和React Native中学习Facebook在开源项目中的行为准则
- Lintcode回文数
- 数据库——SQL中union与union all的使用
- Gradle基本使用(3):依赖管理
- 顺序表应用6:有序顺序表查询
- 将MongoDB注册成windows服务,开机启动