网址:https://ac.nowcoder.com/acm/contest/4784/E

题目描述

经典的A+B问题描述如下:
从标准输入流输入两个整数 {A}A 和 {B}B,请你求出这两个数字的和。其中 {A}A 和 {B}B 都在32位有符号整数能存储的范围内。
下面是一份AC代码:
#include < iostream >
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
cout << a+b;
return 0;
}
现在已知这个程序输出的结果是 {c}c,请问有多少种可能的输入数据?

输入描述:

一行,仅包含一个整数 {c}c ,这个整数的值在32位有符号整数的存储范围内。

输出描述:

一个数,表示可能的输入数据的情况数

输入

1

输出

4294967296

说明

以下输入数据都可以让该程序输出1
1 0
2 -1
-5 6
0 1
-2147483647 -2147483648
想要使上述程序输出1,总共有4294967296种可能的输入

题解:

这道题比较坑,起初还以为需要求出maxn_int+b=c,或者minn_int+b=c,然后这个b就是临界值。
结果样例都过不了,再仔细一看,这道题考到了溢出的情况
那么对于任何一个有符号的32位的数,假设一个32位的a,一定会有一个b于其对应

AC代码:

#include<iostream>
using namespace std;
int main(){
    int c;
    cin>>c;
    cout<<4294967296;
    return 0;
}

打卡第10天,真的越来越感觉到自己很菜了