xuyouchen @ 2019-04-22 18:11:24
为什么在本机跑所有数据都能过但是交上去样例都WA了...
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<cmath>
using namespace std;
stack<char> tmp;
bool check(char a){
if(a=='+'||a=='-'||a=='*'||a=='/')
return true;
else
return false;
}
int fun(int a,int b,char c){
switch (c)
{
case '+':
return a+b;
case '-':
return b-a;
case '*':
return a*b;
case '/':
return (int)(b/a);
}
}
int gen(int l){
int ans,s,c;
char temp;
for(int k=0;k<l;k++){
s=(int)pow(10,k);
temp=tmp.top();
tmp.pop();
c=(int)temp-48;
ans+=c*s;
}
return ans;
}
int main(){
stack<int> num;
string str;
// memset(tmp,0,sizeof(tmp));
cin>>str;
int size=str.size();
int t1,t2;
for(int i=0;i<size;i++){
if(str[i]=='@'){
printf("%d",num.top());
return 0;
}
else if(str[i]!='.'&&!check(str[i]))
tmp.push(str[i]);
else if(str[i]=='.')
num.push(gen(tmp.size()));
else if(check(str[i])){
t1=num.top();
num.pop();
t2=num.top();
num.pop();
num.push(fun(t1,t2,str[i]));
}
}
return 0;
}
望大佬指教
by Orange0628 @ 2023-09-03 16:32:49
你来康康
再康康这个