L1-025 正整数A+B (15 分)
1.题目描述:
题的目标很简单,就是求两个正整数A
和B
的和,其中A
和B
都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。
输入格式:
输入在一行给出A
和B
,其间以空格分开。问题是A
和B
不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。
注意:我们把输入中出现的第1个空格认为是A
和B
的分隔。题目保证至少存在一个空格,并且B
不是一个空字符串。
输出格式:
如果输入的确是两个正整数,则按格式A + B = 和
输出。如果某个输入不合要求,则在相应位置输出?
,显然此时和也是?
。
输入样例1:
123 456
结尾无空行
输出样例1:
123 + 456 = 579
结尾无空行
输入样例2:
22. 18
输出样例2:
? + 18 = ?
输入样例3:
-100 blabla bla...33
输出样例3:
? + ? = ?
2.代码展示:
#include<bits/stdc++.h>
using namespace std;
//用于判断字符串是否为数字
bool isNum(string s){
for(int i=0;s[i];i++)
if(s[i]-'0'<0 || s[i]-'0'>9)return false;
return true;
}
int main(){
string s1,s2,s;
getline(cin,s);//读入一整串字符串
//找到第一个空格,空格左边赋给s1字符串,空格右边赋给s2字符串
for(int i=0;s[i];i++){
if(s[i]==' '){
s1=s.substr(0,i);
s2=s.substr(i+1);
break;
}
}
//如果两个字符串都是数字,则对其是否在区间[1,1000]进行判断
if(isNum(s1)&&isNum(s2)){
long long a1=stoi(s1);
long long a2=stoi(s2);
int flag3=1,flag4=1;
//如果不满足条件,则将字符串变为"?",方便输出
if(a1<1||a1>1000){
s1="?";
flag3=0;
}
//如果不满足条件,则将字符串变为"?",方便输出
if(a2<1||a2>1000){
s2="?";
flag4=0;
}
//如果满足在区间[1,1000]的条件,则计算他们的和
if(flag3&&flag4){
long long res=a1+a2;
cout<<s1<<" + "<<s2<<" = "<<res<<endl;
}
//否则输出如下
else cout<<s1<<" + "<<s2<<" = ?"<<endl;
return 0;
}
//控制正确的输出
if(!isNum(s1) && isNum(s2))s1="?";
if(isNum(s1) && !isNum(s2))s2="?";
if(!isNum(s1) && !isNum(s2)){
s1="?",s2="?";
}
cout<<s1<<" + "<<s2<<" = ?"<<endl;
return 0;
}
3.注意:
注意:
难点:
1)A可能是空格、0、负数、乱码;B除了不能为空字符串其他一样。
2)A,B可能为整数,但是范围并不在[1,1000]中。(对应于测试点5和6)。
输入时用getline接受所有字符串,根据第一个空格为A、B分隔点找出A、B赋值给变量;
原题链接:PTA | 程序设计类实验辅助教学平台
L1-025 正整数A+B (15 分)的更多相关文章
- L1-050 倒数第N个字符串 (15分)
L1-050 倒数第N个字符串 (15分) 给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时, ...
- PAT 乙级 1091 N-自守数 (15 分)
1091 N-自守数 (15 分) 如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3×922=25392,而 25392 的末尾两位正好是 ...
- PAT 乙级 1086 就不告诉你 (15 分)
1086 就不告诉你 (15 分) 做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三.”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积. 输入格式 ...
- PAT 乙级 1071 小赌怡情(15 分)
1071 小赌怡情(15 分) 常言道“小赌怡情”.这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩 ...
- 求交错序列前N项和(15 分)
7-2 求交错序列前N项和(15 分) 本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在 ...
- 【PAT】1016 部分A+B(15 分)
1016 部分A+B(15 分) 正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 A=3862767,DA=6,则 A ...
- B1091 N-自守数 (15分)
B1091 N-自守数 (15分) 如果某个数 \(K\)的平方乘以\(N\) 以后,结果的末尾几位数等于 \(K\),那么就称这个数为"\(N\)-自守数".例如 \(3×92 ...
- B1086 就不告诉你 (15分)
B1086 就不告诉你 (15分) 做作业的时候,邻座的小盆友问你:"五乘以七等于多少?"你应该不失礼貌地围笑着告诉他:"五十三."本题就要求你,对任何一对给定 ...
- B1081 检查密码 (15分)
B1081 检查密码 (15分) 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母.数字和小数点 .,还必须既有字母 ...
- B1076 Wifi密码 (15分)
B1076 Wifi密码 (15分) 下面是微博上流传的一张照片:"各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1:B ...
随机推荐
- Python学习笔记--数据可视化的开头
JSON数据格式的转换 示例: 若是有中文数据,可以在data后面加上ensure_ascii=False pyecharts模块 网站:https://gallery.pyecharts.org(有 ...
- 接入HMS Core应用内支付服务过程中一些常见问题总结
华为HMS Core应用内支付服务(In-App Purchases,IAP)为应用提供便捷的应用内支付体验和简便的接入流程.该服务支持客户端和服务端两种开发形式,具体可以参考官方文档. 往期文章:常 ...
- 7.远程代码执行漏洞RCE
远程代码执行漏洞RCE 1.RCE Remote Code Execute 远程代码执行 Remote Command Execute 远程命令执行 2.危害 窃取服务器的敏感数据.文件 对电脑的文件 ...
- golang pprof监控系列(2) —— memory,block,mutex 使用
golang pprof监控系列(2) -- memory,block,mutex 使用 大家好,我是蓝胖子. profile的中文被翻译轮廓,对于计算机程序而言,抛开业务逻辑不谈,它的轮廓是是啥呢? ...
- docker中跑MySQL
mkdir xxx 创建一个目录 cd xxx 进入该目录 运行: sudo docker run -p 3306:3306 --name mymysql \ --restart=always -v ...
- [Linux]常用命令之【cat/echo/iconv/vi/grep/find/head/tail】
cat cat [选项] [文件].. # 一次显示整个文件或从键盘创建一个文件或将几个文件合并成一个文件 cat -n file1 # 编号文件内容再输出 echo -n 输出后不换行 -e 遇到转 ...
- python:调用内置函数
问题描述:尝试下博客园如何上传GIF # hzh 每天进步一点点 # 2022/5/13 17:24 import colorama import time import os colorama.in ...
- Redis 数据类型 String
Redis 数据类型 String Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set Redis 常用命令,思维导图 >>&g ...
- 动态规划DP入门问题----最大连续子序列,最长不下降子序列(可以不连续),最长公共子序列
一.最大连续子序列 1.题目叙述 对于一个数字序列A1A2A3...An,求出连续子序列的最大和,如对于序列-2,11,-4,13,-5,-2,其中的最大序列和是11+(-4)+13=20 2.动态规 ...
- The first week match's mistake-2
旋转排列 (https://www.luogu.com.cn/problem/B3688) 解读一下题目: 要求从给定的数组拿出最后一个数字后 看看变化后的数组的最后一个数字是否是要求的数字 想到用栈 ...