禁止在 int 乘 int 时不开 long long

[入门赛 #18] 禁止在 int 乘 int 时不开 long long

题目描述

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

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

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

输入格式

输入共两行。

输入的第一行为两个整数 x l , x u x_l,x_u xl,xu,表示变量 x x x 的取值范围为 x l ≤ x ≤ x u x_l \le x \le x_u xlxxu

输入的第二行为两个整数 y l , y u y_l,y_u yl,yu,表示变量 y y y 的取值范围为 y l ≤ y ≤ y u y_l \le y \le y_u ylyyu

输出格式

输出一行一个字符串:

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

样例 #1

样例输入 #1

1 5
1 5

样例输出 #1

int

样例 #2

样例输入 #2

-2147483647 2147483647
-2147483647 2147483647

样例输出 #2

long long int

提示说明

数据规模与约定

  • 对于 50 % 50\% 50% 的测试数据, 0 ≤ x l ≤ x u < 2 31 0 \le x_l \le x_u < 2^{31} 0xlxu<231 0 ≤ y l ≤ y u < 2 31 0 \le y_l \le y_u < 2^{31} 0ylyu<231
  • 对于 100 % 100\% 100% 的测试数据, − 2 31 ≤ x l ≤ x u < 2 31 -2^{31} \le x_l \le x_u < 2^{31} 231xlxu<231 − 2 31 ≤ y l ≤ y u < 2 31 -2^{31} \le y_l \le y_u < 2^{31} 231ylyu<231

代码内容

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射/*  */
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const ll ima=2147483647;

int main()
{
    ll x,y,x2,y2;
    cin>>x>>y>>x2>>y2;
    
    if(x*x2>ima||y*y2>ima||x*y2<-ima-1||y*x2<-ima-1)
        cout<<"long long int"<<endl;
    else cout<<"int"<<endl;//进行判断。

    return 0;
}
  • 24
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值