感觉思路对了,但是实现起来样例都不对
查看原帖
感觉思路对了,但是实现起来样例都不对
1013323
wangyutian578楼主2023/8/12 17:18
#include <bits/stdc++.h>
#define MX 1000
using namespace std;
char s[MX + 10];
char t[MX + 10];
char f[MX + 10];
int main()
{
	cin >> t >> s;
	int len = strlen(t),i;
	for(i = 0;i < len;i++)
	{
		if(t[i] == '1')
		{
			t[i] == '0';
		}
		else
		{
			t[i] = '1';
		}
		int n = 0,k = 1,j;
		for(j = len - 1;j >= 0;j--)
		{
			n = n + (t[i] - '0') * k;
			k = k * 2;
		}
		int sum = 1,m = n;
		while(m != 0)
		{
			f[sum] = m % 3 + '0';
			sum++;
			m = m / 3;
		}
		int cnt = 0;
		m = sum;
		int ls = strlen(s);
		if(strlen(f) != strlen(s))
		{
			f[sum] = '0';
		}
		else
		{
			sum--;
		}
		for(j = ls - 1;j >= 0;j--)
		{
			if(s[i] != f[ls - i - 1])
			{
				cnt++;
			}
		}
		if(cnt == 1)
		{
			cout << n << endl;
			break;
		}
		if(t[i] == '1')
		{
			t[i] == '0';
		}
		else
		{
			t[i] = '1';
		}
		for(j = sum - 1;j >= 0;j--)
		{
			cout << f[j];
		}
		cout << endl;
	}
	return 0;
}
2023/8/12 17:18
加载中...