30分,#3,4,5,6,8,9,10WA
查看原帖
30分,#3,4,5,6,8,9,10WA
917301
xwx123456楼主2024/1/10 22:25
#include<bits/stdc++.h>
using namespace std;
string a,b,c;
int as,bs,n,m,t,k,sum,d[15],e[15],f[15];
bool bijiao() {
	if(k!=bs)
		return false;
	sum=0;
	for(int i=0; i<k; i++) {
		if(f[i]!=e[i])
			sum++;
	}
	if(sum==1)
		return true;
	return false;
}
void z10_3() {
	k=0;
	m=n;
	while(m!=0) {
		t=m%3;
		m/=3;
		d[k++]=t;
	}
	for(int i=0; i<k; i++) {
		f[k-i-1]=d[i];
	}
}
void z2_10() {
	c=a;
	n=0;
	while(c[0]=='0'&&c.size()>1)//去前导零
		c.erase(0,1);
	for(int i=c.size()-1,j=0; i>=0; i--,j++)//n为十进制
		n+=(c[i]-'0')*pow(2,j);
}
int main() {
	cin>>a>>b;
	as=a.size(),bs=b.size();
	for(int i=0; i<bs; i++)
		e[i]=b[i]-'0';
	for(int i=0; i<as; i++) {
		if(a[i]=='1') {
			a[i]='0';
			z2_10();
			z10_3();
			if(bijiao()==1) {
				cout<<n;
				break;
			}
			a[i]='1';
		} else {
			a[i]='1';
			z2_10();
			z10_3();
			if(bijiao()==1) {
				cout<<n;
				break;
			}
			a[i]='0';
		}
	}
	return 0;
}
2024/1/10 22:25
加载中...