救人
2024-12-14 14:29:29
发布于:浙江
#include <bits/stdc++.h>
using namespace std;
const int maxSize = 109;
int getPriority(char op){
if(op == '+' || op == '-') return 0;
return 1;
}
void infixToPostFix(char infix[],char s2[],int& top2){
char s1[maxSize];int top1 = -1;
int i = 0;
while(infix[i] != '\0'){
if('a' <= infix[i] && infix[i] <= 'z'){
s2[++top2] = infix[i];
++i;
}
else if(infix[i] == '('){
s1[++top1] = '(';
++i;
}
else if(infix[i] == '+' || infix[i] == '-' || infix[i] == '*' || infix[i] == '/'){
if(top1 == -1 || s1[top1] == '(' || getPriority(infix[i]) > getPriority(s1[top1])){
s1[++top1] = infix[i];
++i;
}
else s2[++top2] = s1[top1--];
}
else if(infix[i] == ')'){
while(s1[top1] != '(') s2[++top2]= s1[top1--];
--top1;
++i;
}
}
while(top1 != -1) s2[++top2] = s1[top1--];
}
char s[109],res[109];
int main(){
cin >> s;
int len = -1;
infixToPostFix(s,res,len);
for(int i = 0;i <= len;i++) cout << res[i];
}
全部评论 7
#include<bits/stdc++.h> using namespace std; int a[10010],b[10010],c[10010]; int main(){ int n; cin>>n; if(n==1){ cout<<1; return 0; } if(n==2){ cout<<2; return 0; } a[0]=1; b[0]=2; int l1=1,l2=1,l3=1; for(int k=2;k<n;k++){ int len=max(l1,l2)-1; for(int i=0;i<=len;i++){ c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; } if(c[len+1]) l3++; for(int i=0;i<max(l1,l2);i++){ a[i]=b[i]; } for(int i=0;i<l3;i++){ b[i]=c[i]; if(k!=n-1)c[i]=0; } l1=l2; l2=l3; } bool flag=false; for(int i=l3;i>=0;i--){ if(c[i]) flag=true; if(flag) cout<<c[i]; } return 0; }
6天前 来自 浙江
1高精度减法:
#include<bits/stdc++.h> using namespace std; int a[10010],b[10010],c[10010]; int main(){ string s1,s2; cin>>s1>>s2; if(s1.size()<s2.size()||(s1.size()==s2.size()&&s1<s2)){ cout<<'-'; swap(s1,s2); } int l1=s1.size(),l2=s2.size(); for(int i=0;i<l1;i++) a[i]=s1[l1-i-1]-'0'; for(int i=0;i<l2;i++) b[i]=s2[l2-i-1]-'0'; for(int i=0;i<=s1.size();i++){ c[i]+=a[i]-b[i]; if(c[i]<0){ c[i+1]--; c[i]+=10; } } bool flag=false; for(int i=s1.size();i>=0;i--){ if(c[i]) flag=true; if(flag) cout<<c[i]; } return 0; }
6天前 来自 浙江
0#include<bits/stdc++.h> using namespace std; int mp[1005][1005],ans,n,m; bool vis[1005]; void dfs(int x){ ans=max(ans,x); for(int i=1;i<=n;i++){ if(mp[x][i]&&!vis[i]){ vis[i]=true; dfs(i); } } return; } int main(){ cin>>n>>m; for(int i=0;i<m;i++){ int x,y; cin>>x>>y; mp[x][y]=1; } for(int i=1;i<=n;i++){ memset(vis,0,sizeof(vis)); ans=i; vis[i]=true; dfs(i); cout<<ans<<' '; } return 0; }
2024-12-21 来自 浙江
0顶
2024-12-14 来自 浙江
06
2024-12-14 来自 浙江
0选B
2024-12-14 来自 浙江
0
顶
2024-12-14 来自 浙江
0顶
2024-12-14 来自 浙江
0真·刘笑瑜
2024-12-14 来自 浙江
0
顶
2024-12-14 来自 浙江
0
有帮助,赞一个