题目网址:
1325 - 表达式的值(III)-东方博宜OJ
题目描述
从键盘读入一个格式为(a+b)*c的运算式,请计算该运算式的结果。
如:输入(12+13)*20,输出:500
(4.2.62)
输入
一个如(a+b)*c的运算式(本题测试数据中a、b、c都是int范围的数,计算结果也在int范围)
输出
一个整数代表运算结果
样例
输入
(12+13)*20
输出
500
题目参数
时间限制 | 1 秒 |
内存限制 | 16 MB |
提交次数 | 820 |
通过人数 | 666 |
金币数量 | 2 枚 |
难度 | 基础 |
这道题的思路其实很简单:
第一步:把输入内容存入一个字符串中
第二步:把字符串中的“(”、“)”、“*”、“=”的位置提取出来
第三步:根据“(”、“)”、“*”、“=”的位置把字符串拆分为几个数字,存进变量里
第四步:根据题目上的公式计算出结果即可
c++代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int a,b,c;
int zk,yk,jh,ch;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='('){
zk=i;
}
if(s[i]=='+'){
jh=i;
a=stoi(s.substr(1,i-1));
}
if(s[i]==')'){
yk=i;
b=stoi(s.substr(jh+1,i-jh-1));
}
if(s[i]=='*'){
ch=i;
c=stoi(s.substr(i+1,s.size()));
}
}
cout<<(a+b)*c;
return 0;
}
觉得文章不错的话就给我点个赞吧!