Tyvj 1041 表达式计算2
描述
保证数据中不会出现负数,并且同时保证,如果你按从左到右的顺序计算,同样也不会出现负数的情况。
输入格式
输出格式
测试样例1
输入
1+1-1
输出
1
备注
表达式中数字位数<=255
一道大数加减法的问题,完全可以把减法看成加法,相加相减时都不考虑进位借位,到最后统一进位借位处理,这样会更简单一些。
举个例子:5247+823-299-11
7 4 2 5
3 2 8
-9 -9 -2
-1 -1
= 0 -4 8 5
最后看哪一位上>=10或者<0,在进行借位和进位的运算。第二个数-4小于0,就给他加上10,前面的8减去1,结果就是0675,逆序输出得到5760.
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char b[260],s[260];
int a[260][260];
void add(int x,int y)
{int i;for(i=0; i<256; i++)a[y][i]=a[x][i]+a[y][i];
}
void mult(int x,int y)
{int i;for(i=0; i<256; i++)a[y][i]=a[x][i]-a[y][i];
}
int main()
{int i,j,k,n,m;while(gets(s)){memset(a,0,sizeof(a));int len=strlen(s);int p=0,q=0;for(i=len-1; i>=0; i--){if(s[i]=='+'||s[i]=='-'){b[q++]=s[i];p=0;}else a[q][p++]=s[i]-'0';}for(j=q-1; j>=0; j--){if(b[j]=='+')add(j+1,j);else mult(j+1,j);}for(i=0; i<256; i++){if(a[0][i]<0){while(a[0][i]<0){a[0][i]+=10;a[0][i+1]-=1;}}else if(a[0][i]>=10){while(a[0][i]>=10){a[0][i]-=10;a[0][i+1]+=1;}}}int f=0;for(i=256; i>=0; i--){if(a[0][i]>0){k=i;f=1;break;}}if(f==0)printf("0");elsefor(i=k; i>=0; i--)printf("%d",a[0][i]);printf("\n");}return 0;
}
Tyvj 1041 表达式计算2相关推荐
- 零起点学算法07——复杂一点的表达式计算
零起点学算法07--复杂一点的表达式计算 Description 下面你来计算一个复杂一点的计算表达式 Input 没有输入 Output 输出表达式的值,保留2位小数 题目分析:根号要用sqrt来算 ...
- .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Expression Evaluator验证组件.那里只是概述了一下,并没有对其使用和强大功能做 ...
- 蓝桥杯-表达式计算(java)
算法训练 表达式计算 时间限制:1.0s 内存限制:256.0MB问题描述输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除.输入格式输入一行,包含一个表达式.输出格式输出这个表达 ...
- [算法 笔记]字符串表达式计算(简易版)
题目:编写一个函数,计算字符串中表达式的值,参数中只包含计算符:+,-,*,/等.例如,str="10+50+2*6/3",result=64. 解析: 考虑算术表达式计算规则: ...
- 中缀表达式计算、后缀表达式计算、中缀转后缀
代码来源 : bilibili网站 :https://www.bilibili.com/video/av91996256?from=search&seid=174497233083020298 ...
- 算法笔记_044:表达式计算求值(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的 ...
- 2017年第八届蓝桥杯C/C++ C组国赛 —— 第三题:表达式计算
标题:表达式计算 虽然我们学了许久的程序设计,但对于简单的四则混合运算式,如果让我们完全白手起家地编程来解析,还是有点棘手. 这里,我们简化一下问题,假设只有加法和乘法,并且没有括号来改变优先级. 再 ...
- 2017年第八届蓝桥杯C/C++ A组国赛 —— 第三题:表达式计算
标题:表达式计算 虽然我们学了许久的程序设计,但对于简单的四则混合运算式,如果让我们完全白手起家地编程来解析,还是有点棘手. 这里,我们简化一下问题,假设只有加法和乘法,并且没有括号来改变优先级. 再 ...
- 栈在表达式计算过程中的应用
栈在表达式计算过程中的应用 :建立操作数栈和运算符栈.运算符有优先级. 规则: 自左至右扫描表达式,凡是遇到操作数一律进操作数栈. 当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈.反 ...
最新文章
- 「云毕业照」刷爆朋友圈!AI人脸融合技术谁家强?
- es6学习 -- 解构赋值
- c#中Show和Showdialog的区别分析
- Jenkins自定义主题教程
- mysql不显示默认密码_免安装版mysql不出现默认密码状况(基于mysql8.0)
- zookeeper学习笔记001-Address already in use: bind启动报错
- mybatis映射多对多查询实现
- TensorFlow学习笔记——TensorFlow入门
- Bootstrap学习之三:使用排版
- (四) Session管理 --《springboot与shiro整合》
- jquery中object对象循环遍历的方法
- qt在linux下编译资源文件,linux下Qt qrc文件的编写与应用
- 两台计算机如何打印机共享打印机,两台计算机如何共享一个打印机?
- 一个IT公司技术总监的职责
- ngrinder启动项目时报错Error creating bean with name ‘emf‘ defined in org.ngrinder.infra.config.DatabaseConf
- gis平移至所选要素_ArcGIS中如何实现矢量数据平移
- 基于曲线插值的规划方法(Interpolating Curve Planners)
- Pacemaker+Corosync+Mfs+Iscsi+Fence实现高可用和Fence管理
- 在线考试模拟系统都有哪些功能,和优点呢?
- python实现回合制对战小游戏
热门文章
- 对话框AlertDialog的基本使用(新手)
- PHP写个Web小工具来监控你的加密币
- 自制贴纸图案大全图片_贴纸的制作方法
- 杭电_ACM_汉诺塔VII
- java file outside of source root - IDEA中的java文件突然出现这样的提示
- 第二周 Turtle库的使用
- 托管代码和非托管代码的区别
- 计算机实战项目、毕业设计、课程设计之 含论文+辩论PPT+源码等]微信小程序基于微信小程序的美容预约+后台管理系统
- php泡点,夜猫首页更新PHP程序 是一个应用于网站
- CoCa-GAN阅读笔记