满课一天,做25的时候还疯狂WA,进度可以说是很慢了 哭泣

------------------------------------------------L1-025----------------------------------------------------------

正整数A+B

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

输入格式:

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

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

输出格式:

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

输入样例1:

 

输出样例1:

 +  = 

输入样例2:

. 

输出样例2:

? +  = ?

输入样例3:

- blabla bla...

输出样例3:

? + ? = ?

------------------------------------------------L1-025----------------------------------------------------------

注解:这道题WA了我很久,直到某节英语课突然通关哈哈哈哈哈,这道题要注意很多东西:

①A和B同时输入,识别为负数则要输出问号

②A和B输入的大小不超过1000,否则要输出问号

③A可以为空,B不为空

④要处理A+B的结果,即要把字符串转为整型

⑤识别数字,如果乱码得输出为问号。

· 代码分块:

  第一步:构建结构体存储A和B的内容及转码int值还有是否合法:

struct T{
char temp[];
int is_empty = ;
int ans = ;
}temp_1,temp_2;

  第二步:对结构体进行审核处理,构建特殊函数对结构体处理:

  这里要注意:千万不能提前把0吃了,因为可能会出现04 08这样的情况,这样是符合题目条件的,输出4+8=12,因为得从sum加和结果判断是否为0,而不是凭输入。

void TempToAns(struct T &t)
{
int i = ;
t.ans = ;
base = ;
if(t.temp[] == ) t.is_empty = ,i = ;
if(t.temp[] == ) t.is_empty = , i = ;
for(int j = strlen(t.temp)-;j>=i;j--)
{
if((''<= t.temp[j]) && (t.temp[j] <= ''))
{
t.ans+=base*(t.temp[j] - );
base*=;
}
else
{
t.is_empty = ;
break;
}
}
if(t.ans > || t.ans <=) t.is_empty = ;
}

  第三步:将一个大数组进行临时存储所有字符,然后循环扫第一个空格,这里千万不能拆成两个输入,不然A无法获取为空值,就会过不了其中一个测试点。

    char temp[];
int up;
int have = ;
cin.getline(temp,);
for(int i = ;;i++)
{
if(temp[i] == ' ' && have == )
{
up = i;
have = ;
continue;
}
if(i>=strlen(temp)) break;
if(have == ) temp_1.temp[i] = temp[i];
else temp_2.temp[i-up-] = temp[i];
}

  第四步,调用结构体处理函数:

    TempToAns(temp_1);
TempToAns(temp_2);

  第五步:进行输出,通过判断temp_1(或temp_2).is_empty是否为1来判断是否输出?

    if(temp_1.is_empty == ) printf("?");
else
{
if(temp_1.ans == )
{
temp_1.is_empty = ;
printf("?");
}
else printf("%d",temp_1.ans);
}
printf(" + ");
if(temp_2.is_empty == ) printf("?");
else printf("%d",temp_2.ans);
printf(" = ");
if(temp_1.is_empty == && temp_2.is_empty == ) printf("%d\n",temp_1.ans+temp_2.ans);
else printf("?\n");

· AC代码:

#include<stdio.h>
#include<iostream>
#include<string.h>
#include<cstring>
using namespace std; struct T{
char temp[];
int is_empty = ;
int ans = ;
}temp_1,temp_2; char temp;
int base;
void TempToAns(struct T &t)
{
int i = ;
t.ans = ;
base = ;
if(t.temp[] == ) t.is_empty = ,i = ;
if(t.temp[] == ) t.is_empty = , i = ;
for(int j = strlen(t.temp)-;j>=i;j--)
{
if((''<= t.temp[j]) && (t.temp[j] <= ''))
{
t.ans+=base*(t.temp[j] - );
base*=;
}
else
{
t.is_empty = ;
break;
}
}
if(t.ans > || t.ans <=) t.is_empty = ;
} int main()
{
char temp[];
int up;
int have = ;
cin.getline(temp,);
for(int i = ;;i++)
{
if(temp[i] == ' ' && have == )
{
up = i;
have = ;
continue;
}
if(i>=strlen(temp)) break;
if(have == ) temp_1.temp[i] = temp[i];
else temp_2.temp[i-up-] = temp[i];
}
TempToAns(temp_1);
TempToAns(temp_2);
if(temp_1.is_empty == ) printf("?");
else
{
if(temp_1.ans == )
{
temp_1.is_empty = ;
printf("?");
}
else printf("%d",temp_1.ans);
}
printf(" + ");
if(temp_2.is_empty == ) printf("?");
else printf("%d",temp_2.ans);
printf(" = ");
if(temp_1.is_empty == && temp_2.is_empty == ) printf("%d\n",temp_1.ans+temp_2.ans);
else printf("?\n");
return ;
}

------------------------------------------------L1-026----------------------------------------------------------

I Love GPLT

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了。

所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。

输入样例:

输出样例:

I

L
o
v
e G
P
L
T

注意:输出的两个空行中各有一个空格。

------------------------------------------------L1-026----------------------------------------------------------

注解 :水题,不知道意义在哪

#include<stdio.h>
#include<string.h> char N[]={"I Love GPLT"}; int main()
{
for(int i = ;i<;i++)
printf("%c\n",N[i]);
return ;
}

注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~

『ACM C++』 PTA 天梯赛练习集L1 | 025-026的更多相关文章

  1. 『ACM C++』 PTA 天梯赛练习集L1 | 001-006

    应师兄要求,在打三月底天梯赛之前要把PTA上面的练习集刷完,所以后面的时间就献给PTA啦~ 后面每天刷的题都会把答案代码贡献出来,如果有好的思路想法也会分享一下~ 欢迎大佬提供更好的高效率算法鸭~ - ...

  2. 『ACM C++』 PTA 天梯赛练习集L1 | 052-053

    今日刷题,水题水题 ------------------------------------------------L1-052------------------------------------ ...

  3. 『ACM C++』 PTA 天梯赛练习集L1 | 048-49

    今日刷题048-049 ------------------------------------------------L1-048---------------------------------- ...

  4. 『ACM C++』 PTA 天梯赛练习集L1 | 040-41

    近期安排 校赛3.23天梯赛3.30华工校赛 4.21省赛 5.12 ------------------------------------------------L1-040----------- ...

  5. 『ACM C++』 PTA 天梯赛练习集L1 | 021-024

    忙疯警告,这两天可能进度很慢,下午打了一下午训练赛,训练赛的题我就不拿过来的,pta就做了一点点,明天又是满课的一天,所以进度很慢啦~ -------------------------------- ...

  6. 『ACM C++』 PTA 天梯赛练习集L1 | 007-011

    真的是忙头晕了,学业.ACM打题.班级活动.自学新东西,哇这充实的大学~ ------------------------------------------------L1-007--------- ...

  7. 『ACM C++』 PTA 天梯赛练习集L1 | 044-45

    记录今日刷题 ------------------------------------------------L1-044--------------------------------------- ...

  8. 『ACM C++』 PTA 天梯赛练习集L1 | 042-43

    记录刷题情况 ------------------------------------------------L1-042--------------------------------------- ...

  9. 『ACM C++』 PTA 天梯赛练习集L1 | 036-037

    这几天比较忙,所以随便做做水题了,得赶紧把英剧搞完啊啊啊啊啊啊 ------------------------------------------------L1-036-------------- ...

  10. 『ACM C++』 PTA 天梯赛练习集L1 | 029-033

    哈哈,今天开始我也是学车人了~ 开始一千多道疯狂刷题~ ------------------------------------------------L1-029------------------ ...

随机推荐

  1. Android深入四大组件(五)Android8.0 根Activity启动过程(后篇)

    前言 在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读An ...

  2. 养兔子Fibo函数优化

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 打通版微社区(4):微信第三方服务部署——JSP的IIS部署

    写在前面: 本机环境2008R2.tomcat8 网上搜了很多JSP的IIS部署,内容大部分是相近的,这些文章最早出现在2012的样子.大概的原理就是通过ISAPI方式对IIS进行扩展(这个扩展是to ...

  4. PHP修改图片

    这篇是关于修改图片的效果,主要还是用到php中的GD库中的函数,没想到php还有这凶残能力,出乎我的预料. 先看代码upload_image.php,主要是一个上传控件,用来选择图片 <html ...

  5. pandas 入门

    1. 默认的pandas不能读取excel.需要安装xlrd, xlwt才能支持excel的读写 pip install xlrd #添加读取excel功能 pip install xlwt #添加写 ...

  6. Java的MD5加密和解密

    链接:http://www.cnblogs.com/android-blogs/p/5305598.html Java的MD5加密和解密 简单demo: import  java.security.* ...

  7. PetaPoco轻量级ORM框架 - 对Database类的进行扩展,可以返回Table格式数据

    一.有时我们需要将常用的功能添加到PetaPoco中的Database类中 实现方式有2种,以下以查询字段为例 1.通过扩展方式实现,此方式不改变被调用(Database)类名(只能增加方法) pub ...

  8. Oracle Golden Gate概要

    Oracle GoldenGate简介 Oracle Golden Gate用于源数据库与目标数据库的数据复制备份:可以在异构的环境(各种操作系统和数据库)之间实现数据亚秒级的实时复制备份:以及可以在 ...

  9. 使用zepto实现QQ消息左滑删除效果

    有这样一个需求: 1. 有一个列表,将每一个列表项左滑动出现删除按钮: 2. 右滑动隐藏删除按钮: 3. 点击这个删除按钮删除该列表项. 完成以后的效果: 这是微信网页端的页面,使用的是 zepto ...

  10. Java类修饰符的使用与作用以及常见问题

    首先明确,类是放在文件里的,在文件里面的不同位置就有不同的作用,就是不同类型的类. 1, 顶级类or外部类:包括两种,一个文件中与文件名同名称的类我们称作顶级类(也是外部类),如果在一个文件中的一个类 ...