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  } 

 

 

转载于:https://www.cnblogs.com/xwl3109377858/p/10295695.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

到底多大才算高并发?

一、什么是高并发 定义&#xff1a; 高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。关键指标&#xff1a; -响应时间(Response Time) -吞吐量(Throughput) -每秒查询率QPS(Query Per Second) -每秒事务处理量TPS(Transaction Per Second) -同时在…

eclipse安装maven插件

1、在线安装插件 a.打开eclipse&#xff0c;菜单“Help”-“Install New Software...” b.在Work with 地址栏输入&#xff1a;http://download.eclipse.org/releases/对应eclipse版本名称 c.在filter框中输入maven d.选择“Collaboration”-“m2e - Maven Integration for Ecl…

VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法

右键点击项目属性&#xff0c;选择打包/发布 Web&#xff0c;勾选 排除生成的调试符号&#xff1a; 再次发布&#xff0c;就不会再生成.pdb文件 转载于:https://www.cnblogs.com/JoinLet/p/10297254.html

java分布式学习路线

先理解为什么需要分布式&#xff0c;因为服务器处理的能力需要提升&#xff0c;这里有两个方面&#xff0c;第一是纵向 也就是增加cpu的能力&#xff0c;或者加内存&#xff1b;另一个方向就是 横向 &#xff0c;就是分布式。将本来一台计算机的压力分给多太计算机&#xff0c;…

深入Nginx之《常用参数配置技巧》

常见参配置实战技巧 下面会讲解实战中应该怎么配置更为合理。 1.user 默认是nobody&#xff0c;如果使用nobody&#xff0c;Nginx在运行过程中会出现很多操作没有权限&#xff0c;比如写硬盘。一般都是用低于root级别的用户&#xff0c;比如www&#xff0c;并且可以在linux下设…

transform、transition 动画效果

transform 转换&#xff0c;变形 origin 定义旋转基点&#xff08;left top center right bottom 坐标值&#xff09; transform-origin: 50px 50px; transform-origin: left;。 rotate 旋转 transform:rotate(50deg) 旋转角度可以为负数&#xff0c;需要先定义…

eslint 规则

"off"或0- 关闭规则 "warn"或1- 将规则作为警告打开&#xff08;不影响退出代码&#xff09; "error"或2- 将规则作为错误打开&#xff08;触发时退出代码为1&#xff09;转载于:https://www.cnblogs.com/smzd/p/10844161.html

分布式学习路线

由于分布式系统所涉及到的领域众多&#xff0c;知识庞杂&#xff0c;很多新人在最初往往找不到头绪&#xff0c;不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统&#xff0c;来阐述分布式系统中的一些基本问题。 负载均衡分布式缓存分…

洛谷p2704 炮兵阵地

典型的状态压缩题&#xff0c;只是要定义dp[i][j][k]&#xff0c; #include<bits/stdc.h>using namespace std;int n,m,state[1<<10],tot0;int dp[110][66][66],sum[1<<10],mp[110];int getsum(int x){ int cnt0; while(x){ if(x&1) cnt; …

Flask 框架app = Flask(__name__) 解析

1 #!/usr/local/bin/python2 # codingutf-83 4 from flask import Flask5 app Flask(__name__)6 7 app.route(/)8 def hello_world():9 return Hello World! 10 11 if __name__ __main__: 12 app.run(host0.0.0.0,port9000) 第4行&#xff0c;引入Flask类&#x…

发布订阅

发布订阅 在软件架构中&#xff0c;发布订阅是一种消息范式&#xff0c;消息的发送者&#xff08;称为发布者&#xff09;不会将消息直接发送给特定的接收者&#xff08;称为订阅者&#xff09;。而是将发布的消息分为不同的类别&#xff0c;无需了解哪些订阅者&#xff08;如果…

ps 命令

ps 为我们提供了进程的一次性的查看&#xff0c;它所提供的查看结果并不动态连续的&#xff1b;如果想对进程时间监控&#xff0c;应该用 top 工具。kill 命令用于杀死进程。linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的…

python练习题-day8

1、有如下文件&#xff0c;a1.txt&#xff0c;里面的内容为&#xff1a; 老男孩是最好的培训机构&#xff0c; 全心全意为学生服务&#xff0c; 只为学生未来&#xff0c;不为牟利。 我说的都是真的。哈哈 分别完成以下的功能&#xff1a; a,将原文件全部读出来并打印。 with o…

消息中间件应用场景

消息中间件应用场景

IDEA开发vue.js卡死问题

在执行cnpm install后会在node_modules这个文件下面生成vue的相关依赖文件&#xff0c; 这个时候当执行cnpm run dev命令时&#xff0c;会导致IDEA出现卡死的问题&#xff0c;解决方法如下&#xff1a; 转载于:https://www.cnblogs.com/heqiuyong/p/10301925.html

[BZOJ4698][SDOI2008]Sandy的卡片(后缀自动机)

差分之后就是求多串LCS。 对其中一个串建SAM&#xff0c;然后把其它串放在上面跑。 对SAM上的每个状态都用f[x]记录这个状态与当前串的最长匹配长度&#xff0c;res[x]是对每次的f[x]取最小值。答案就是res[]的最大值。 考虑f[x]的求法&#xff0c;把s[]放在SAM上跑时&#xff…

点对点

数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。点对点是基于MAC地址或者IP地址&#xff0c;是指一个设备发数据给另外一个设备&#xff0c;这些设备是指直连设备包括网卡&#xff0c;路由器&#xff0c;交换机。端对端是网络连接&#xff0c;应用程…

none

module.exports {root: true,env: {node: true},extends: [plugin:vue/essential, vue/prettier],rules: {no-console: process.env.NODE_ENV production ? error : off,no-debugger: process.env.NODE_ENV production ? error : off,prettier/prettier: [error,{// tab缩…

MQ消息中间件介绍

消息队列技术是分布式应用间交换信息的一种技术&#xff0c;消息队列可驻留在内存或者磁盘上&#xff0c;队列存储消息直到它们被应用程序读走&#xff0c;通过消息队列&#xff0c;应用程序可以独立的执行—它们不需要知道彼此的位置&#xff0c;或者继续执行前不需要等待接收…

22 块级元素和行内元素

学习的初期&#xff0c;我们就要知道&#xff0c;标准文档流等级森严。标签分为两种等级&#xff1a; 行内元素块级元素比如h1标签和span&#xff0c;同时设置宽高&#xff0c;来看浏览器效果&#xff0c;那么你会发现&#xff1a; 行内元素和块级元素的区别&#xff1a;&#…