怎么废纸
查看原帖
怎么废纸
1100435
yuanwanzhao楼主2024/4/10 22:27

拿3.5.2.-*7.+@举例
正常结果:16
蒟蒻我的答案:28
(大脑爆炸)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
stack <int> a;
string s;
int main(){
	int cn=0,i=0;
	bool b=0;
	cin>>s;
	while(b!=1){
		if(s[i]>='0'&&s[i]<='9'){a.push(s[i]-48);cout<<s[i]<<" ";}
		else if(s[i]=='+'){int n=a.top();  a.pop();  cn+=a.top()+n;  n=a.top()+n;  a.pop();  a.push(n);}
		else if(s[i]=='-'){int n=a.top();  a.pop();  cn+=a.top()-n;  n=a.top()-n;  a.pop();  a.push(n);}
		else if(s[i]=='*'){int n=a.top();  a.pop();  cn+=a.top()*n;  n=a.top()*n;  a.pop();  a.push(n);}
		else if(s[i]=='/'){int n=a.top();  a.pop();  cn+=a.top()/n;  n=a.top()/n;  a.pop();  a.push(n);}
		else if(s[i]=='.'){}
		else{b=1;}
		i++;
		cout<<i<<" : "<<cn<<"\n";
	}
	cout<<" ";
	cout<<cn;
return 0;
}
2024/4/10 22:27
加载中...