F**k!
  • 板块P2104 二进制
  • 楼主Sun13
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/2 17:14
  • 上次更新2024/10/2 17:19:30
查看原帖
F**k!
1027956
Sun13楼主2024/10/2 17:14

1st:珍贵的OLE

#include<bits/stdc++.h>
using namespace std;
int n,m;
string s,t;
int main(){
	scanf("%d%d",&n,&m);
	cin>>s>>t;
	for(int i=0; i<m; i++){
		if(t[i]=='*'&&s!="0"){
			s+='0';
			n++;
		}
		if(t[i]=='/'&&s!="0"){
			if(s=="1"){
				s="0";
				continue;
			}
			n--;
			s=s.substr(0,n);
		}
		if(t[i]=='+'){
			int k=n-1;
			s[k]+=1;
			while(s[k]!='2'){
				s[k]='0';
				s[--k]+=1;
			}
		}
		if(t[i]=='-'){
			int k=n-1;
			while(s[k]=='0') k--;
			s[k]='0';
			for(int j=k+1; j<n; j++)
				s[j]='1';
		}
	cout<<s<<'\n';
	}
    return 0;
}

2nd:求助的地方

#include<bits/stdc++.h>
using namespace std;
int n,m;
string s,t;
int main(){
	scanf("%d%d",&n,&m);
	cin>>s>>t;
	for(int i=0; i<m; i++){
		if(t[i]=='*'&&s!="0"){
			s+='0';
			n++;
		}
		if(t[i]=='/'&&s!="0"){
			if(s=="1"){
				s="0";
				continue;
			}
			n--;
			s=s.substr(0,n);
		}
		if(t[i]=='+'){
			int k=n-1;
			s[k]+=1;
			while(s[k]!='2'){
				s[k]='0';
				s[--k]+=1;
			}
		}
		if(t[i]=='-'){
			int k=n-1;
			while(s[k]=='0') k--;
			s[k]='0';
			for(int j=k+1; j<n; j++)
				s[j]='1';
		}
	}
	cout<<s<<'\n';
    return 0;
}

1st是调试时造成的,2nd呢?求助

2024/10/2 17:14
加载中...