在vs上测试了,和数据1一样的结果,但是wa
查看原帖
在vs上测试了,和数据1一样的结果,但是wa
820424
foegets楼主2023/9/14 21:33
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
string noip(int n)
{
	string s;
	int* a = new int[10005];
	memset(a, 0, sizeof(a));
	int i = 0;
	bool flag = false;
	while (n)
	{
		a[i++] = n % 2;
		n /= 2;
	}
	while(i>1)
	{
		if (a[i] == 1)
		{
			
			if(flag)s += "+";
			s += "2(" + noip(i) + ")";
			flag = true;
		}
		i--;
	}
	if (a[i--] == 1)
		if (flag)s += "+2";
		else s += "2", flag = true;
	if (a[i] == 1)
		if (flag)s += "+2(0)";
		else s += "2(0)";
	delete a;
	return s;
}
int main()
{
	int n;
	cin >> n;
	cout << noip(n) << endl;;
	return 0;
}

ps:第一个测试数据73 结果2(2(2)+2)+2(2+2(0))+2(0)
有大佬看一下为啥吗

2023/9/14 21:33
加载中...