你好a+b(非入门)

题目传送门:https://www.nowcoder.com/acm/contest/165/A
来源:牛客网

牛牛刚学习了输入输出,他遇到了一道这样的题目。
输入2个整数a和b
保证输入的a和b在long long范围之内,即满足
-9223372036854775808 <= a, b <= 9223372036854775807
计算a+b的值,即这两个数字的和。
如果a+b在long long范围之内,即满足
-9223372036854775808 <= a + b <= 9223372036854775807
那么输出一行一个整数表示a+b的结果。
如果a+b不在long long范围之内,即越界了,那么输出"hello, %lld ",包含引号。
具体可以参见样例。


输入描述:

输入只有一行,包含用空格分开的两个整数,表示a和b。

输出描述:

如果a+b在long long范围之内,输出一行一个整数,表示a+b的结果;否则输出"hello, %lld
",包含引号。

示例1

输入

-9223372036854775808 9223372036854775807

输出

-1

示例2

输入

9223372036854775807 1

输出

"hello, %lld
"

备注:

正确计算a+b可以得到50分
正确输出"hello, %lld "也可以得到50分

牛客网的一场NOIP模拟赛,看到一堆巨佬这题只拿了90分,来发下题解。

参考代码
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 long long a,b,ans;
 4 int main()
 5 {
 6     scanf("%lld%lld",&a,&b);
 7     if(a>0&&b>0&&a+b<0) //这样就说明炸了 
 8     {
 9         cout<<char(34);
10         cout<<"hello, %lld\n";
11         cout<<char(34);
12     }
13     else if(a<0&&b<0&&a+b>=0)//同上 
14     {
15         cout<<char(34);
16         cout<<"hello, %lld\n";
17         cout<<char(34);
18     }
19     else //没炸就输出 
20     {
21         printf("%lld",a+b);
22     }
23     return 0;
24 }
原文地址:https://www.cnblogs.com/jiuduSHENBENG/p/9650818.html