P1449 后缀表达式

题目链接

题目描述

所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。

如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected]。’@’为表达式的结束符号。‘.’为操作数的结束符号。

输入输出格式

输入格式:

输入:后缀表达式

输出格式:

输出:表达式的值

输入输出样例

输入样例#1: 复制

3.5.2.-*[email protected]

输出样例#1: 复制

16

说明

字符串长度,1000内。

已慢慢找回状态。。。

这些题,,,刚开始还是想不出来

到底怎么码。

都是看了思路之后,,,才明白。

感觉这种都算是思路题吧。

还是基本入栈出栈+字符串。

ac代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7
 8 char c;
 9 long long a[1002],now,i;
10
11 int main()
12 {
13     while((c=getchar())!=‘@‘)    //记住这种输入方法。
14     {
15         if(c>=48&&c<=57)         //如果是数字的话。
16         {
17             now*=10;             //因为可能是十位数,,百位数。。。
18             now+=c-48;
19         }
20         else if(c==‘.‘)
21         {
22             a[++i]=now;          //a数组存储那些被分隔开的数字。
23             now=0;
24         }
25         else if(c==‘+‘)
26         {
27             a[i-1]=a[i-1]+a[i];  //执行运算操作,重新更新
28             i--;                 //出栈,走掉。
29         }
30         else if(c==‘-‘)
31         {
32             a[i-1]=a[i-1]-a[i];
33             i--;
34         }
35         else if(c==‘*‘)
36         {
37             a[i-1]=a[i-1]*a[i];
38             i--;
39         }
40         else if(c==‘/‘)
41         {
42             a[i-1]=a[i-1]/a[i];
43             i--;
44         }
45     }
46     printf("%lld",a[1]);  //都走掉,最后剩1.
47     return 0;
48 }

如果你不开心,那我就把右边这个帅傻子分享给你吧,你看,他这么好看,跟个zz一样看着你,你还伤心吗?真的!这照片盯上他五秒钟就想笑了。一切都会过去的。时间时间会给你答案2333

原文地址:https://www.cnblogs.com/Mary-Sue/p/9250734.html

时间: 2024-08-02 01:17:41

P1449 后缀表达式的相关文章

洛谷P1449 后缀表达式 栈 模拟 字符串

洛谷P1449 后缀表达式 栈 模拟 字符串 栈模拟一下 碰到 . 如果输入的是数字就把数字放进栈中 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <cstdlib> 5 #include <string> 6 #include <algorithm> 7 #include <iomanip> 8 #include <io

[题解]P1449 后缀表达式

[题解]P1449 后缀表达式(栈) 题目链接:P1449 后缀表达式 题目描述: 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3(5–2)+7对应的后缀表达式为:3.5.2.-7.[email protected].'@'为表达式的结束符号.'.'为操作数的结束符号. 输入格式:输入:后缀表达式 输出格式:输出:表达式的值 输入输出样例: 输入 #1 3.5.2.-*[e

洛谷 P1449 后缀表达式

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected].’@’为表达式的结束符号.‘.’为操作数的结束符号. 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值 输入输出样例 输入样例#1: 3.5.2.-*[email protected] 输出样例#1: 1

洛谷P1449——后缀表达式(栈模拟)

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected].'@'为表达式的结束符号.'.'为操作数的结束符号. 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值 输入输出样例 输入样例#1: 3.5.2.-*[email protected] 输出样例#1: 1

洛谷 P1449 后缀表达式 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1449 题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected].’@’为表达式的结束符号.‘.’为操作数的结束符号. 输入输

洛谷 P1449 后缀表达式 Label:表达式计算系列

题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected].’@’为表达式的结束符号.‘.’为操作数的结束符号. 输入输出格式 输入格式: 输入:后缀表达式 输出格式: 输出:表达式的值 输入输出样例 输入样例#1: 3.5.2.-*[email protected] 输出样例#1: 1

【栈】洛谷P1449 后缀表达式

#include <iostream> #include <stack> using namespace std; int main(){ stack<int>s; char t; while(cin>>t && t != '@'){ //输入字符串t 当为@时结束 if( t>='0' && t<='9'){ //如果t是数字 int a = t - '0'; //那么先把t赋值给a while(cin>&

复习题之后缀表达式

洛谷 P1449 后缀表达式 难度普及- 时空限制1s / 128MB 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级). 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.[email protected].’@’为表达式的结束符号.‘.’为操作数的结束符号. 输入输出格式 输入格式:输入:后缀表达式 输出格式:输出:表达式的值 输入输出样例 输入样例#1: 3.5.2.

算法学习 - 表达树的建立(后缀表达式法),树的先序遍历,中序遍历,后序遍历

表达树就是根据后缀表达式来建立一个二叉树. 这个二叉树的每个叶子节点就是数,真祖先都是操作符. 通过栈来建立的,所以这里也会有很多栈的操作. 树的先序遍历,中序遍历,后序遍历的概念我就不讲了,不会的自行百度,不然也看不懂我的代码. 下面是代码: // // main.cpp // expressionTree // // Created by Alps on 14-7-29. // Copyright (c) 2014年 chen. All rights reserved. // #includ