CCCC 正整数A+B
题意:
本题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。
输入格式:
输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。
注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。
输出格式:
如果输入的确是两个正整数,则按格式“A + B = 和”输出。如果某个输入不合要求,则在相应位置输出“?”,显然此时和也是“?”。
分析:这题很坑。
1、A和B都在区间[1,1000]。
2、前导0也算不合要求。
- #include<bits/stdc++.h>
- using namespace std;
- const double eps = 1e-8;
- string s;
- int ans;
- bool judge(string x){
- ans = 0;
- int len = x.size();
- for(int i = 0; i < len; ++i){
- if(i == 0 && x[i] == '0') return false;
- if(x[i] >= '0' && x[i] <= '9'){
- ans = ans * 10 + (x[i] - '0');
- }
- else return false;
- }
- if(ans > 1000 || ans == 0) return false;
- return true;
- }
- int main(){
- getline(cin, s);
- int len = s.size();
- string x;
- string y;
- for(int i = 0; i < len; ++i){
- if(s[i] == ' '){
- x = s.substr(0, i);
- y = s.substr(i + 1, len);
- break;
- }
- }
- bool ok = true;
- int tmp = 0;
- if(judge(x)){
- printf("%d + ", ans);
- tmp += ans;
- }
- else{
- ok = false;
- printf("? + ");
- }
- if(judge(y)){
- printf("%d = ", ans);
- tmp += ans;
- }
- else{
- ok = false;
- printf("? = ");
- }
- if(!ok) printf("?\n");
- else{
- printf("%d\n", tmp);
- }
- return 0;
- }
CCCC 正整数A+B的更多相关文章
- 找出数组中从未出现的最小正整数java实现
/** * 找出未出现的最小正整数 * @param A * @param n * @date 2016-10-7 * @author shaobn */ public static int find ...
- 输入两个正整数m和n,求其最大公约数和最小公倍数
public static void main(String[] args){ Scanner sc = new Scanner (System.in); int a,b; System.out ...
- 统计在从1到n的正整数中1出现的次数
问题: 给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数. 例如:N= 2,写下1,2.这样只出现了1个“1”. N= 12,我们会写下1, 2, 3, 4, ...
- 【python】将一个正整数分解质因数
def reduceNum(n): '''题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5''' print '{} = '.format(n), : print 'Pleas ...
- js 正则验证输入框只允许输入正实数和正整数和负整数
<input onkeyup="this.value=this.value.replace(/[^0-9.]/g,'')"> (正实数) <input onke ...
- 从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。
Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); int ss=sc.nextInt(); i ...
- 51nod 1007 正整数分组
将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的. Input 第1行:一个数N,N为正整数的数量 ...
- 【CCCC天梯赛决赛】
cccc的天梯赛决赛,水题一样的水,中档题以上的还是没做出来.补了一下题,觉得其实也不是很难,主要是练的少. L2-1:红色预警 并查集 我做的时候想不到并查集,想到了也不一定做的出来,都是其实不难. ...
- 【stut 逆置正整数】
C语言实验——逆置正整数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 输入一个三位正整数,将它反向输出. 输入 3位正整数. ...
随机推荐
- GNS3 模拟icmp重定向
网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0:网络B的IP地址 ...
- RTL8711AM
官方文档主要修改 为了实现log服务 1,在log_service.h 取消注释 #ifndef LOG_SERVICE_H #define LOG_SERVICE_H #include " ...
- springboot官网->pom.xml文件
springboot 2.1.6 pom.xml
- 九宫格 android:stretchMode="columnWidth",缩放与列宽大小同步
转载▼ <GridView android:id="@+store/grid" android:layout_width="wrap_content" ...
- 微信小程序—添加背景音乐
问题: 想在打开小程序时就自动播放背景音乐(循环) 解决方法: 1.思路:写一个函数,在 onLoad()中调用 2. //index.js //获取应用实例 const back = wx.get ...
- Spring Boot -- 认识Spring Boot
在前面我们已经学习过Srping MVC框架,我们需要配置web.xml.spring mvc配置文件,tomcat,是不是感觉配置较为繁琐.那我们今天不妨来试试使用Spring Boot,Sprin ...
- HDU 4960 Handling the past 2014 多校9 线段树
首先确定的基本思想是按时间离散化后来建线段树,对于每个操作插入到相应的时间点上 但是难就难在那个pop操作,我之前对pop操作的处理是找到离他最近的那个点删掉,但是这样对于后面的peak操作,如果时间 ...
- 关于重定向RedirectAttributes的用法
刚才做项目,遇到了redirectAttributes使用的问题,上网找了找,看到一篇写的很不错的博客,解决我对于RedirectAttributes的困惑,也给大家推荐下. 原文链接:href=&q ...
- 已解决!kali桌面无法放置快捷方式问题
kali不知从哪个版本更新之后桌面上就不能添加快捷方式了,经过一番折腾找到了解决方法. 1.终端运行命令:apt-get install gnome-shell-extension-desktop-i ...
- mapper.xml实现oracle的分页语句
当我们用常规方法进行分页查询时,虽然在数据库可以分页查询出来数据, 如下语句 <!-- 分页查询所有 --> <select id="findAllPage" r ...