zoukankan      html  css  js  c++  java
  • L1-025 正整数A+B

    题的目标很简单,就是求两个正整数AB的和,其中AB都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。

    输入格式:

    输入在一行给出AB,其间以空格分开。问题是AB不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。

    注意:我们把输入中出现的第1个空格认为是AB的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。

    输出格式:

    如果输入的确是两个正整数,则按格式A + B = 和输出。如果某个输入不合要求,则在相应位置输出?,显然此时和也是?

    输入样例1:

    123 456
    

    输出样例1:

    123 + 456 = 579
    

    输入样例2:

    22. 18
    

    输出样例2:

    ? + 18 = ?
    

    输入样例3:

    -100 blabla bla...33
    

    输出样例3:

    ? + ? = ?
    
     
    思路:考虑到可以用第一个出现的空格分隔成两部分,直接用string或者字符串接收,注意接收方式的不同,后面的部分有空格,用getline或者gets接收,再判断四种情况,另外注意数值可能超出1到1000范围,有关于最后两个测试点......
     
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 using namespace std;
     5 int main()
     6 {
     7     string str1,str2;
     8     cin>>str1;
     9     getchar();
    10     getline(cin,str2);
    11     int flag1=0,flag2=0;
    12     for(int i=0;i<str1.size();i++)
    13     {
    14         if(str1[i]<'0'||str1[i]>'9')
    15         {
    16             flag1=1;
    17             break;
    18         }
    19     }
    20     if(flag1==0)
    21     {
    22         if(stoi(str1)<1||stoi(str1)>1000)
    23         flag1=1;
    24     }
    25     for(int i=0;i<str2.size();i++)
    26     {
    27         if(str2[i]<'0'||str2[i]>'9')
    28         {
    29             flag2=1;
    30             break;
    31         }
    32     }
    33     if(flag2==0)
    34     {
    35         if(stoi(str2)<1||stoi(str2)>1000)
    36         flag2=1;
    37     }
    38     if(flag1==0&&flag2==0)
    39     {
    40         cout<<str1<<" + "<<str2<<" = "<<stoi(str1)+stoi(str2)/*atoi(str1.c_str())+atoi(str2.c_str())*/<<endl;
    41     }
    42     else if(flag1==0&&flag2==1)
    43     {
    44         cout<<str1<<" + "<<"?"<<" = "<<"?"<<endl;
    45     }
    46     else if(flag1==1&&flag2==0)
    47     {
    48         cout<<"?"<<" + "<<str2<<" = "<<"?"<<endl;
    49     }
    50     else if(flag1==1&&flag2==1)
    51     {
    52         cout<<"?"<<" + "<<"?"<<" = "<<"?"<<endl;
    53     }
    54     return 0;
    55  } 
    大佬见笑,,
  • 相关阅读:
    用C++做微信公众平台开发的后台开发时,用sha1加密验证的方法
    UART Receive FIFO and Receive Timeout
    Compile cpp File Manually without IDE under Mingw Environment
    html5 返回当前地理位置的坐标点(经纬度)
    逆袭!花两个月吃透这份“MySQL宝典”拿到字节offer
    MySQL约束的概述
    2020-11-28
    人工智能能力提升指导总结
    年轻就该多尝试,教你20小时Get一项新技能
    MySQL~存储过程基本操作
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10295695.html
Copyright © 2011-2022 走看看