题解 P2788 【数学1(math1)- 加减算式】
Javi
2019-07-23 16:39:26
广告:
# 点击[食用](https://www.starroad.top/archives/416.html)以获得最佳效果
讲一个无耻的解法。
我们知道,如果每一个数之间都打一个空格,就可以简单的使用下面的程序解决。
```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n,ans=0;
while(cin>>n){
ans+=n;
}
cout<<ans<<endl;
return 0;
}
```
现在我们读入的是一个字符串,我们就使用字符串流手动把空格补上。
```cpp
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;//读入的字符串
stringstream ca;//字符串流
cin>>s;//读入字符串
for(unsigned int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){//数字
ca<<s[i];
}
else{//符号
ca<<" "<<s[i];
}
}
long long n,ans=0;
while(ca>>n){//cin>>n
ans+=n;
}
cout<<ans<<endl;
return 0;
}
```