题目描述
给出一个表达式,其中运算符仅包含+,要求求出表达式的最终值。
输入格式
仅一行,即为含有正整数和+号的表达式。
输出格式
仅一行,既为表达式算出的结果(所有数据保证计算结果<=10^9)。
输入输出样例
样例输入
1+1
样例输出
2
c++实现
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string sa,sb="+";
cin>>sa;
sb+=sa;sb+="+";
int sum=0,len=sb.size(),t=0,num=0,t1=0,t2=0;
for(;true;){
t1=sb.find("+",t1);
t1++;
t2=sb.find("+",t1);
string sc=sb.substr(t1,t2-t1);
istringstream st(sc);
st>>num;
sum+=num;
t1=t2;
if(t2+1==len){
cout<<sum;
return 0;
}
}
return 0;
}
代码详解
#include<bits/stdc++.h>//万能头文件
using namespace std;//std命名空间
int main(){//定义主函数
string s1,s2="+";//定义字符串
cin>>s1;//输入字符串
s2+=s1;s2+="+";//将字符串头尾加上"+"
int sum=0,len=s2.size(),t=0,num=0,t1=0,t2=0;//定义变量
for(;true;){//无限循环
t1=s2.find("+",t1);//寻找第一个"+"
t1++;//使s2从下一个字符开始寻找
t2=s2.find("+",t1);//找到下一个"+"的下标
string s3=s2.substr(t1,t2-t1);//截取数字字符串
istringstream s4(s3);//将s3字符串转为int类型(s4)
s4>>num;//将s4的值给num
sum+=num;//累加数字和
t1=t2;//赋值,进行下一次查找
if(t2+1==len){//判断是否找到所有数字
cout<<sum;//输出答案
return 0;//结束程序
}//if括回来
}//for括回来
return 0;//主函数返回值:0
}//主函数括回来