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

洛谷-P1957 口算练习题

题目描述

王老师正在教简单算术运算。细心的王老师收集了 i 道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如 5+8 的算式最好只要输入 5 和 8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度 6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。

输入格式

第一行一个整数 i。

接着的 i 行为需要输入的算式,每行可能有三个数据或两个数据。

若该行为三个数据则第一个数据表示运算类型,a 表示加法运算,b 表示减法运算,c 表示乘法运算,接着的两个数据表示参加运算的运算数。

若该行为两个数据,则表示本题的运算类型与上一题的运算类型相同,而这两个数据为运算数。

输出格式

输出 2×i 行。对于每个输入的算式,输出完整的运算式及结果,第二行输出该运算式的总长度。

输入输出样例

输入 #1复制运行

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

输出 #1复制运行

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

说明/提示

【数据规模与约定】

对于 50% 的数据,输入的算式都有三个数据。

对于所有数据,0<i≤50,第一个算式一定有三个数据,运算数为非负整数且小于 10000。

解题方法:

利用sscanf(),sprintf()。

sscanf()可将字符串(char数组)格式化变为数字或浮点型等等;

sprintf()可格式化输出一个字符串到char数组中。

#include<bits/stdc++.h>
using namespace std;
int main(){long long n;cin>>n;int c,d;char h;char b[10000];for(long long i=0;i<n;i++){char a[100];cin>>b;if(b[0]>='a'&&b[0]<='z'){h=b[0];cin>>c>>d;}else{sscanf(b,"%d",&c);cin>>d;}if(h=='a')sprintf(a,"%d+%d=%d",c,d,c+d);if(h=='b')sprintf(a,"%d-%d=%d",c,d,c-d);if(h=='c')sprintf(a,"%d*%d=%d",c,d,c*d);cout<<a<<endl<<strlen(a)<<endl;}return 0;
}

相关文章:

  • leetcode0409. 最长回文串-easy
  • linux中使用make clean重新编译
  • Python网络编码——聊天小工具
  • 写给这个阶段自我的一封信
  • TDengine 中集群维护
  • [闲谈]C语言的面向对象
  • ES6基础
  • 华为OD机试_2025 B卷_欢乐的周末(Python,100分)(附详细解题思路)
  • ACM模式中输入输出的处理
  • Linux中的SELinux
  • UE C++学习笔记之按键绑定
  • 解码词向量:让AI语言模型更透明
  • 在 Windows 上使用 WSL 安装 Ansible详细步骤
  • 蚂蚁TuGraph图数据库行业落地,开启数据处理新“视界”
  • 如何利用 Spring Data MongoDB 进行地理位置相关的查询?
  • H310昂达等主板无法开机自启的原因
  • SD-WAN与传统网络结合:轨道交通网络优化的高效实践与深度解析
  • ARM架构
  • 工信部中文点选验证码识别
  • 技术文档写作方法——以MATLAB滤波为例
  • 网页设计与网站建设基础/网络工程师培训班要多少钱
  • 专门找图片素材的网站/最新国际新闻50条简短
  • 怎样做网站漂浮/丽水网站seo
  • 做网站资质荣誉用的图片/营销目标分为三个方面
  • 国外做文化的网站/专业黑帽seo推广
  • 维护网站费用/深圳宝安seo外包