A+B 题目链接
数据类型的范围
类型 | 存储大小 |
---|---|
char | 1字节 |
unsigned char | 1字节 |
int | 2或4字节 |
unsigned int | 2或4字节 |
short | 2字节 |
unsigned short | 2字节 |
long | 4字节 |
unsigned long | 4字节 |
如何确定在计算机中int所占的字节数?
cout<<sizeof(int)<<" "<<sizeof(long);
确定字节数之后,如何计算具体的数值表达范围?
由上图,在现代64位操作系统中,四字节int long 能表示的数据的最大范围为:-2的31次方, 2的31次方。
正好为本题题目所给的数据的最大范围。
但是,在A+B运算的时候,可能会溢出。
不妨将不等式等价为:
A>C-B的判断。
由于C、B均在4字节范围中,相减必然不会超过这个取值范围。
程序的代码如下:
#include <iostream>
using namespace std;
int main(void)
{
long int a,b,c,d;
int t;cin>>t;
for(int i = 1 ;i <= t;i++)
{
cin >> a >> b >> c ;
d = c - b ;
if(a <= d) cout<<"Case #"<<i<<": false"<<endl;
else cout<<"Case #"<<i<<": true"<<endl;
}
return 0;
}