当前位置: 首页 > news >正文

最讨厌这种字符串问题了!!

题目:洛谷P1957口算练习题

题目大意描述:

第一行输入一个整数表示接下来要进行多少次运算,接下来每行输入一个字母c和两个数字x,y(输入的字母为a/b/c,分别表示要进行+,-,*运算)或者就输入两个数字x,y(表示这次运算方式和上次相同)。输出计算式和这个计算式有多少个字符。

输入输出样例:

输入
4
a 64 46
275 125
c 11 99
b 46 64

输出

64+46=110
9
275+125=400
11
11*99=1089
10
46-64=-18
9

作者思路:

到底该怎么判断要输入两个数字还是输入一个字母和两是个数字呢?本蒟蒻的思路先输入要输入的第一个字母或数字,我就定义一个字符串变量s,然后判断s[0]是否等于a/b/c,如果是的话再输入x,y,如果不是的话就把刚刚输入的字符串转换为整数类型然后赋值给x,然后再输入y,所以我就写了一个字符转数字的函数,然后又写了一个判断数字是几位数的函数。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int len(int x){int y;if(x==0) return 1;if(x<0) y=-x;else y=x;int l=(int)log10(y)+1;if(x<0) return l+1;else return l;
}
int trs(string s){int s1=0,a,l;for(int i=0;i<s.size();i++){a=(int)s[i]-48;l=s.size()-1-i;while(l--){a*=10;}s1+=a;}return s1;
}
int main(){int n;cin>>n;string s;char t;int x,y,z,l1,l2,l3,l;while(n--){cin>>s;if(s[0]<'d'&&s[0]>='a'){t=s[0];cin>>x>>y;it:l1=len(x);l2=len(y);if(t=='a'){z=x+y;l3=len(z);l=l1+l2+l3+2;printf("%d+%d=%d\n%d\n",x,y,z,l);}if(t=='b'){z=x-y;l3=len(z);l=l1+l2+l3+2;printf("%d-%d=%d\n%d\n",x,y,z,l);}if(t=='c'){z=x*y;l3=len(z);l=l1+l2+l3+2;printf("%d*%d=%d\n%d\n",x,y,z,l);}}else{x=trs(s);cin>>y;goto it;}}
} 

http://www.lryc.cn/news/333486.html

相关文章:

  • B-名牌赌王(本人遇到的题,做个笔记)
  • 博客评论回复03
  • 【【萌新的学习之Numpy数组的使用】】
  • RabbitMQ3.13.x之七_RabbitMQ消息队列模型
  • Android JNI 调用第三方SO
  • Vid2seq
  • Opencv人机交互界面设置
  • 蓝桥杯算法心得——字典树考试(贡献度+前缀和)
  • Linux下Qt生成程序崩溃文件
  • Go语言中测试和性能
  • 回归预测 | Matlab基于CPO-GPR基于冠豪猪算法优化高斯过程回归的多输入单输出回归预测
  • python 日期字符串转换为指定格式的日期
  • day03-Docker
  • C语言函数实现冒泡排序
  • 区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计
  • Java 分支结构 - if…else/switch
  • 【Unity每日一记】如何从0到1将特效图集制作成一个特效
  • 磁力链接的示例与解释
  • 云存储中常用的相同子策略的高效、安全的基于属性的访问控制的论文阅读
  • JVM高级篇之GC
  • 第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
  • java之static详细总结
  • RabbitMQ3.13.x之六_RabbitMQ使用场景
  • C++ 类和对象(初篇)
  • 微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力
  • Spring Boot Actuator
  • 我与C++的爱恋:类与对象(一)
  • os模块篇(十八)
  • Oracle 数据库工作中常用知识点:sql语法与常用函数
  • 软件工程