int 与 long long

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 82 总提交人数: 93
Special Judge

题目描述

你知道 int 与 long long 吗?

在比赛中,根据数据范围,分析清楚变量的取值范围,是非常重要的。int 类型变量与 int 类型变量相乘,往往可能超出 int 类型可以表示的取值范围。

现在,给出两个 int 类型变量 $x,y$ 及其取值范围,问 $x\times y$ 的值是否可能超过 int 类型可以表示的范围?

输入格式

不定组输入。

对于每一组输入,第一行为两个整数 x1,x2,表示变量 $x$ 的取值范围为 x1 $\leqslant $ x $\leqslant $ x2。

第二行为两个整数 y1,y2,表示变量 $y$ 的取值范围为 y1 $\leqslant $ y $\leqslant $ y2。

输出格式

每一组输出一个字符串:

  • 若会超过,则输出 we should use long long
  • 若不会超过,则输出 we should use int

样例 #1

样例输入 #1

1 5
1 5

-2147483647 2147483647
-2147483647 2147483647

样例输出 #1

we should use int
we should use long long

bug代码

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<memory.h>
typedef long long ll;

int main()
{
    ll a,b,c,d;
    int e,f,g,h;
    while (~scanf("%d%d%d%d",&a,&b,&c,&d))
    {
        e = a;f = b;g = c;h = d;
        if (a * c != e * g || b * d != f * h)
            printf("we should use long long\n");
        else
            printf("we should use int\n");
    }
    return 0;
}

提示

int 类型可以表示的范围为 $[-2147483648, 2147483647]$,即 $[-2^{31},2^{31}-1]$。也就是,int 类型可以表示的最小值为 $-2147483648$,最大值为 $2147483647$。

相关推荐