前言:

题目传送门:https://www.luogu.com.cn/problem/P1957

其实这很简单

纯模拟撒~~~~

正文开始:

 _话说 ,就当本蒟蒻正高高兴兴的刷水题时,居然
碰到了这个laji题_

于是就开始了一顿乱写:

思路部分:

这道题很大的一个痛点就在于输入

4

a 64 46

275 125 //这里咋就没有字母了呢????

c 11 99

b 46 64

看来,三个cin不行

于是,经过几分钟的思考,

我大致确定了两种方案:

1.直接getline一行:

可是.....这个如何转换为数字的问题吗,还是去问前排一波的Ak大佬吧(逃)

2.其他办法:

先cin一个char类型的呗,至于那种毒瘤情况待会再解决

于是代码:

cin>>y;
if(y>='a'&&y<='c'){
w=y;
cin>>s1;
}
cin>>s2;

补充小知识:char可是只会读入一个的oh

于是当275 125 这种数据出现的时候,y,s1,s2会变成这样:

y=‘2’;

s2=75;

s3=125;

好了,于是一种想法就理所应当的产生了:吧y变为数字,再与s2拼起来不就得了?

于是:

char y;long long s1,s2;
cin>>y>>s1>>s2;
s1=(y-'0')*pow(10,line(s1))+s1;
cout<<s1;
return 0;

其中有一句line(s1)是读取s1有几位的函数(当然要自己写啦)

long long line(long long i){

	long long j=0,k=i;
if(i<=0){
k=-k;
j++;
} while(k>0){
k=k/10;
j++;
}
return j;
}

很简单,一个模板而已;

可是,你难道没发现什么bug:当如测试点2的5002时会:变为52!!!!!!!

哪儿有问题呢?

原来,当程序读入5002时灰度为‘5’;002->2!!

所以,另辟新路吧!

仔细想想,原来可以这样!!

可把后面的s1用字符串读入

然后与y一拼,一起化为数字:

cin>>e;
e=y+e;
int le=e.size();int kw=1;int ss=0;
for(int i=le-1;i>=0;i--){
ss+=(kw*(e[i]-'0'));
kw=kw*10;
}
s1=ss;

于是,只需要再注意一些细节问题便好:

int main(){
long long n; cin>>n;
for(long long i=1;i<=n;++i){
getzf();
//cout<<"s1:"<<s1<<" "<<s2<<endl;
if(w=='a'){
cout<<s1<<"+"<<s2<<"="<<s1+s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1+s2)<<endl;
}
else if(w=='b'){
cout<<s1<<"-"<<s2<<"="<<s1-s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1-s2)<<endl;
//cout<<"line:"<<line(s1)<<" "<<line(s2)<<" "<<line(s1-s2)<<endl;
}
else if(w=='c'){
cout<<s1<<"*"<<s2<<"="<<s1*s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1*s2)<<endl;
}
}
return 0;
}

注意不要多输出换行oh!!!!!

那会爆零的!!!

code,完整代码:

#include<bits/stdc++.h>
using namespace std;
string a,e; long long s1,s2;char w,y;//////////////////////iephyhoyhjyeohyohytuohyoihj/////iihjn
long long line(long long i){ long long j=0,k=i;
if(i<=0){
k=-k;
j++;
} while(k>0){
k=k/10;
j++;
}
return j;
}
void getzf(){
cin>>y;
//cout<<"y:"<<y<<endl;
if(y>='a'&&y<='c'){
w=y;
cin>>s1;
}
else{
cin>>e;
e=y+e;
int le=e.size();int kw=1;int ss=0;
for(int i=le-1;i>=0;i--){
ss+=(kw*(e[i]-'0'));
kw=kw*10;
}
s1=ss;
}
cin>>s2;
//cout<<"s1:"<<s1<<"s2:"<<s2<<endl;
}
int main(){
long long n; cin>>n;
for(long long i=1;i<=n;++i){
getzf();
//cout<<"s1:"<<s1<<" "<<s2<<endl;
if(w=='a'){
cout<<s1<<"+"<<s2<<"="<<s1+s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1+s2)<<endl;
}
else if(w=='b'){
cout<<s1<<"-"<<s2<<"="<<s1-s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1-s2)<<endl;
//cout<<"line:"<<line(s1)<<" "<<line(s2)<<" "<<line(s1-s2)<<endl;
}
else if(w=='c'){
cout<<s1<<"*"<<s2<<"="<<s1*s2<<endl;
cout<<line(s1)+2+line(s2)+line(s1*s2)<<endl;
}
}
return 0;
}

了结!!

总结一下,下次做模拟题需注意:

1.函数化编程!!!!方便调试,方便理解

这才是做较难模拟题的王道!!!!

2.注意细节,避免爆零!!!

极简:将复杂的东西分为小块,像搭积木一样解决各类难题,这也是每个学科创造的大致路径

删繁就简三秋树,标新立异二月花

byebye~~~~!

洛谷P1957口算练习题题解的更多相关文章

  1. 洛谷 P1957 口算练习题 题解

    题目传送门 这道题是考字符串处理,另外输入要使用c++的cin的神奇功能. #include<bits/stdc++.h> using namespace std; int n;char ...

  2. 洛谷 P1957 口算练习题

    洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...

  3. 洛谷P1720 月落乌啼算钱 题解

    题目传送门 初看题目,好难.再看一次,探索规律,发现这就是有名的斐波那契数列. F[i]=f[i-1]+f[i-2] SO 代码很简单,貌似要开long long,又貌似不用开. #include&l ...

  4. 洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解

    题目链接:https://www.luogu.com.cn/problem/P1720 题目描述: 给你一个公式 ,求对应的 \(F_n\) . 解题思路: 首先不难想象这是一个斐波那契数列,我们可以 ...

  5. 洛谷P1783 海滩防御 分析+题解代码

    洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...

  6. 洛谷P4047 [JSOI2010]部落划分题解

    洛谷P4047 [JSOI2010]部落划分题解 题目描述 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落 ...

  7. 洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈)

    洛谷P1155 双栈排序题解(图论模型转换+二分图染色+栈) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1311990 原题地址:洛谷P1155 双栈排序 ...

  8. 2019.06.17课件:[洛谷P1310]表达式的值 题解

    P1310 表达式的值 题目描述 给你一个带括号的布尔表达式,其中+表示或操作|,*表示与操作&,先算*再算+.但是待操作的数字(布尔值)不输入. 求能使最终整个式子的值为0的方案数. 题外话 ...

  9. 洛谷10月月赛II题解

    [咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...

随机推荐

  1. HEALER

    项目介绍: 专注是一款时间管理应用,可以帮你管理时间,制定计划,让你保持专注,从快节奏的当下抽离,进入另一个平和安静的时空,以获得更好的工作和学习效率. 主模块(专注):设置分类.专注时长.简介,点击 ...

  2. 变身六次失去核心的小米Note还能火吗

    奥特曼变身有时间限制,因此我们总是希望它多变几次身,从而把小怪兽打得嗷嗷叫.但对于科技产品来说,不断推出"变身版",似乎总有江河日下.大势已去之感.三星形形色色的复仇者联盟S6版, ...

  3. AWS CloudFront / 亚马逊CDN使用教程

    步骤: 1. 打开CloudFront服务之后,首先需要选择分发类型.分发类型分为一般的静态文件分发和流媒体分发,即Web和RTMP,我的站点即选择Web类型. 2. CDN回源设定. a. 首先要填 ...

  4. 内核融合:GPU深度学习的“加速神器”

    ​编者按:在深度学习"红透"半边天的同时,当前很多深度学习框架却面临着共同的性能问题:被频繁调用的代数运算符严重影响模型的执行效率. 本文中,微软亚洲研究院研究员薛继龙将为大家介绍 ...

  5. python常用魔术方法概览

    构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __g ...

  6. 从iPhone下滑 看科技转型之困

    看科技转型之困" title="从iPhone下滑 看科技转型之困"> 毫无疑问,苹果正在面临一次关键转型.最近苹果股价较高点134.54美元下跌21%以上的实事, ...

  7. Web渗透基础小总结

    Web渗透框架概述 主要组成: 1. web语言代码(脚本) 2. web程序 3. 数据库程序 Web语言常见几大类 1. HTML:超文本标记语言,标准通用编辑语言下的一个应用 2. PHP:超文 ...

  8. 7-1 jmu-python-汇率兑换 (10 分)

    7-1 jmu-python-汇率兑换 (10 分)   按照1美元=6人民币的汇率编写一个美元和人民币的双向兑换程序 输入格式: 输入人民币或美元的金额,人民币格式如:R100,美元格式如:$100 ...

  9. a标签嵌套href默认行为与子元素click事件存在影响

    2018-08-07 Question about work 开发过程中遇到问题,简单写个demo 运行环境为Chrome 68 描述一下这个问题,当<a>标签内部存在嵌套时, 父元素&l ...

  10. Css里的BFC

    一.BFC简介 BFC全称:Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 的渲染显示规则 (可以把 BFC 理解为一个封闭的大箱子,,容器里面的 ...