• C++ 牛客网普及组第二次测试A


    ---恢复内容开始---

    链接:https://www.nowcoder.com/acm/contest/165/A
    来源:牛客网

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 32768K,其他语言65536K
    64bit IO Format: %lld

    题目描述

    牛牛刚学习了输入输出,他遇到了一道这样的题目。
    输入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分



    这道题看似是一道高精度计算,但是我们并不需要利用高精度(主要是自己考试的时候写不出来。。。。。)
    所以我们要作的巧妙一些。
    首先根据题目要求定义一个long long 的类型,随后,我们就可以直接进行判断了。
    因为计算机在你的数越界了以后,就会输出一个负整数,所以我们只需要判断A+B是不是最后相加成了一个负整数,所以我们的问题也就迎刃而解了。
    同样的,对于两个负数相加的时候,只需要判断计算的结果是不是一个正数。

    就是这样对于判断的过程就解决了。

    但是。。
    在我们要输出"hello, %lld "的时候,我们的问题又来了,因为“” 是不容易输出的。
    而且也会代表着换行,会出现编译错误。

    解决方法也不难,我们只需要运用一下char()就可以了。
    char(34)=" char(92)=

    示范如下:
    #include<bits/stdc++.h>//万能头文件
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        cout<<char(n); 
     } 

     

    本题代码:

    #include<bits/stdc++.h>
    using namespace std;
     long long a,b,n,m,sum=9223372036854775807,ans=-9223372036854775808;
    int main()
    {
        cin>>a>>b;
        if((a>0&&b>0&&a+b<0)||(a<0&&b<0&&a+b>=0))
        {
            cout<<char(34)<<"hello, %lld"<<char(92)<<"n"<<char(34);
            exit(0);
        }
         else cout<<a+b;
         
    }
  • 相关阅读:
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周课程总结&实验报告(四)
    第五周课程总结&试验报告(三)
    课程总结
  • 原文地址:https://www.cnblogs.com/FXY-180/p/9651147.html
Copyright © 2020-2023  润新知