满课一天,做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. docker pull提示x509错误的对应方法

    在一台虚拟机上使用docker pull时出现了x509错误,相关原因与对应方法简单memo如下. 错误现象 在使用docker pull从dockerhub上下载镜像时提示如下错误 docker: ...

  2. ArcGISPlotSilverlightAPI For WPF

    这两天有个需求,在地图上做标绘箭头,效果如下图. Arcgis for WPF 10.2.5.0版本,然而官方文档中没有这种API,自己去写一个呢,又感觉无从下手.无奈去网上搜索了一下,发现一篇好文: ...

  3. 一步一步pwn路由器之栈溢出实战

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文以 DVRF 中的第一个漏洞程序 stack_bof_01 为 ...

  4. toLocaleTimeString()方法在IE和谷歌浏览器上 根据本地时间格式,把 Date 对象的时间部分(不含日期)转换为“时间字符串”存在区别

    这两天修改一个bug,发现一个问题:  toLocaleTimeString()方法在IE和谷歌浏览器上 根据本地时间格式,把 Date 对象的时间部分(不含日期)转换为“时间字符串”存在区别.方法原 ...

  5. resin发布spring-boot项目报错“java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger”

    说白了还是jar包冲突问题,直接说解决方式: 首先将resin/lib下的validation-api-1.0.0.GA.jar替换成项目中的包validation-api-2.0.1.Final.j ...

  6. MVC controller的Action获取HttpRequest

    HttpContext.ApplicationInstance.Context.Request

  7. 高级mask应用

    高级mask应用 用mask做遮罩可以实现复杂的效果: 用来形成遮罩的图片: 原始图片: 如果你熟悉Photoshop,那这种效果绝对是你的菜,看代码你会秒懂...... // // RootView ...

  8. 测试你的 In-app Billing 程序

    测试你的 In-app Billing 程序 为了保证 In-app Billing 可以在你程序中正常使用,你应该在把应用程序发布到Google Play之前进行测试.早期的测试有助于确保用户对于你 ...

  9. The Shapes of CSS(css的形状)

    All of the below use only a single HTML element. Any kind of CSS goes, as long as it's supported in ...

  10. 深入浅出SharePoint2013——常用术语

    CAS(Code Access Security)自定义代码访问安全性 Sandboxed solution 沙箱解决方案