死循环了,但是代码中丝毫没有死循环的迹象,dalao求调
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e7+5;
int n,m,mp[128];
char c,a[N];
void f1(){
//cout<<"f1ing\n";
a[1]++;
if(a[1]>1){
for(int i=1;i<=n&&a[i]>1;i++)a[i+1]++,a[i]=0;
if(a[n+1])n++;
}
}
void f2(){
//cout<<"f2ing\n";
a[1]--;
if(a[1]<0){
for(int i=1;i<=n&&a[i]<0;i++)a[i+1]--,a[i]=1;
if(!a[n])n--;
}
if(!n)n=1;
}
void f3(){
//cout<<"f3ing\n";
for(int i=n+1;i>=1;i++)a[i]=a[i-1];
n++;
}
void f4(){
//cout<<"f4ing\n";
for(int i=1;i<=n;i++)a[i]=a[i+1];
n--;
if(!n)n=1;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n/2;i++)swap(a[i],a[n-i+1]);
while(m--){
cin>>c;
mp[c]++;
}
if(mp['+']>mp['-']){
for(int i=1;i<=mp['+']-mp['-'];i++){
f1();
}
}
else{
for(int i=1;i<=mp['-']-mp['+'];i++){
f2();
}
}
if(mp['*']>mp['/']){
for(int i=1;i<=mp['*']-mp['/'];i++){
f3();
}
}
else{
for(int i=1;i<=mp['/']-mp['*'];i++){
f4();
}
}
for(int i=n;i>=1;i--)cout<<a[n];
return 0;
}